gdb除錯多程序與多執行緒

2021-08-18 02:13:26 字數 2899 閱讀 6298

list/l 行號:顯示binfile源**,接著上次的位置往下列,每次列10行。

list/l 函式名:列出某個函式的源**。

r或run:執行程式。

s或step:進入函式呼叫

breaktrace(bt):檢視各級函式呼叫及引數

info(i) locals:檢視當前棧幀區域性變數的值

info break :檢視斷點資訊。

finish:執行到當前函式返回,然後挺下來等待命令

print(p):列印表示式的值,通過表示式可以修改變數的值或者呼叫函式

set var:修改變數的值

quit:退出gdb

break(b) 行號:在某一行設定斷點

break 函式名:在某個函式開頭設定斷點

continue(或c):從當前位置開始連續而非單步執行程式

run(或r):從開始連續而非單步執行程式

delete breakpoints:刪除所有斷點

delete breakpoints n:刪除序號為n的斷點

disable breakpoints:禁用斷點

enable breakpoints:啟用斷點

info(或i) breakpoints:參看當前設定了哪些斷點

display 變數名:跟蹤檢視乙個變數,每次停下來都顯示它的值

undisplay:取消對先前設定的那些變數的跟蹤

until x行號:跳至x行

p 變數:列印變數值

n 或 next:單條執行

1

/**************************************

2 *檔案說明:process.c

5 *開發環境:kali linux/g++ v6.3.0

6 ****************************************/78

#include

8#include

9#include

10#include

11#include

1213

int main()

14 22else

if(pid == 0)//child

23

26else

//father

27

3132

return

0; 33

34 }

parent                   on               只除錯主程序(gdb預設)

child on 只除錯子程序

parent off 同時除錯兩個程序,gdb跟主程序,子程序block在fork位置

child off 同時除錯兩個程序,gdb跟子程序,主程序block在fork位置

show follow-fork

-mode

show detach-on

-fork

set detach-on

-fork [on

|off]

run

info inferiors

inferior number>
(1)add-inferior

[-copies n]

[-exec executable]

(2)remove-inferiors infno
(3)clone-inferior

[-copies n]

[infno]

(4)detach inferior
(5)kill inferior infno:
(6)set schedule-multiple on|off

(7)scheduler-locking
(8)set follow-exec

-mode

new|same

show follow-exec-mode
(9)set print inferior-events on|off

show print inferior-events
(10)maint info program-spaces
1

/**************************************

2 *檔案說明:thread.c

5 *開發環境:kali linux/g++ v6.3.0

6 ****************************************/78

#include

9#include

1011

void* thread1(void* arg)

12 1617

void* thread2(void* arg)

18 2223

int main()

24

(1)info threads
(2)thread id

gdb除錯多程序與多執行緒

gdb是linux下的 除錯工具,在使用時要加 g選項,開始 gdb file 退出 ctrl d或q。gdb除錯多程序與多執行緒預設設定下,在除錯多程序程式時gdb只會除錯主程序。但是gdb v7.0 支援多程序的分別以及同時除錯,換句話說,gdb可以同時除錯多個程式。只需要設定follow fo...

GDB除錯多程序與多執行緒

gdb除錯過程中常用命令 list l 行號 顯示binfile源 接著上次的位置往下列,每次列10行。list l 函式名 列出某個函式的源 r或run 執行程式。s或step 進入函式呼叫 breaktrace bt 檢視各級函式呼叫及引數 info i locals 檢視當前棧幀區域性變數的值...

gdb除錯多程序多執行緒

1.除錯多程序預設設定下,在除錯多程序程式時gdb只會除錯主程序。但是gdb v7.0 支援多程序的 分別以及同時 除錯,換句話說,gdb可以同時除錯多個程式。只需要設定follow fork mode 預設值 parent 和detach on fork 預設值 on 即可。接下來,首先介紹一下f...