gdb多線程調試


首先編譯文件爲調試版本,也就是在編譯文件指令的末尾加上 -g。調試版的文件仍然是二進制可執行文件,可以用來運行,可是不是調試版的文件不可以用來調試。

例如 :g++ -o mainmain.cpp -g  編譯成調試文件     main 爲調試文件

 

開始調試  輸入指令 gdb main    

運行後會出現很多奇奇怪怪的東西,不用在意是啥

 

加斷點

在你需要讓程序暫停運行的地方加上斷點

一般用法:b 文件名:行數            b 文件名:函數名

例如:  bmain.cpp:15                  bmain.cpp:fun(int)  

 (文件名和一般函數名用table鍵補齊,不要自己敲)

 

運行

r main              如果還有參數,也在這裏寫 例如: r main 127.0.0.16000 3     run

 

打印目前運行地方的代碼  L  (小寫)                                           list

 

運行到下一行,遇到函數不進入函數    n                                       next

 

運行到下一個斷點   c                                                                                   continue

 

遇到函數,進入函數 s     或者在函數內加斷點                                 step

 

跳出函數 f                                                                                       finish

 

輸出變量值    p+變量名                                                    printf

 

線程調試

在多線程啓動之後,輸入info threads    打印出目前線程的信息和編號。

輸入 t  1 切換到線程1    t  2切換到線程2……

 

退出  q

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章