Skip to content

Structure in GDB

使用**结构化思维**来分析GDB。

Contain关系

一个gdb session可以 contain 多个 inferior;

一个inferior可以 contain 多个 thread;

一个thread有一个call stack,call stack contain 多个 stack frame;

通过上面的描述可知:整体形成了一个tree structure

                                thread1 

              inferior1         thread2


session       inferior2


              inferior3

一对多关系

在使用gdb的时候,我们只有一个session,但是可能有多个inferior、多个thread、多个stack frame,显然这是一种 一对多 关系;

由于只有一个session,所以在使用gdb的时候,就需要涉及到current、switch and select、apply to all。

Current

Current inferior: 4.9 Debugging Multiple Inferiors Connections and Programs

Current thread: 4.10 Debugging Programs with Multiple Threads

Current stack frame: 8 Examining the Stack

Switch and select

Select a inferior: inferior infno

Select a thread: thread thread-id

Select a frame: 8.3 Selecting a Frame

Apply to all

Thread: thread apply

Stack frame: 8.5 Applying a Command to Several Frames.