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...