GDB多线程调试常用命令
gdb調試命令
step和next的區別?
當前line有函數調用的時候,next會直接執行到下一句 ,step會進入函數.
查看內存
(gdb)p &a //打印變量地址
gdb)x 0xbffff543 //查看內存單元內變量
0xbffff543: 0x12345678
(gdb) x /4xb 0xbffff543 //單字節查看4個內存單元變量的值
0xbffff543: 0x78 0x56 0x34 0x12
多線程調試
(gdb) info threads:查看GDB當前調試的程序的各個線程的相關信息
(gdb) thread threadno:切換當前線程到由threadno指定的線程
break filename:linenum thread all 在所有線程相應行設置斷點,注意如果主線程不會執行到該行,并且啟動all-stop模式,主線程執行n或s會切換過去
set scheduler-locking off|on\step 默認off,執行s或c其它線程也同步執行。on,只有當前相稱執行。step,只有當前線程執行
show scheduler-locking 顯示當前模式
thread apply all command 每個線程執行同意命令,如bt。或者thread apply 1 3 bt,即線程1,3執行bt。
查看調用堆棧
(gdb)bt
(gdb)f 1 幀簡略信息
(gdb)info f 1 幀詳細信息
斷點
b test.cpp:11
b test.cpp:main
gdb attach 調試方法:
gdb->file xxxx->attach pid->這時候進程是停止的->c 繼續運行
帶參數調試
輸入參數命令set args 后面加上程序所要用的參數,注意,不再帶有程序名,直接加參數,如:
(gdb)set args -l a -C abc
list命令
list linenum 顯示程序第linenum行的周圍的程序
list function 顯示程序名為function的函數的源程序
?
總結
以上是生活随笔為你收集整理的GDB多线程调试常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux线程退出、资源回收、资源清理的
- 下一篇: libevent 源码阅读 Ubuntu