Linux下gdb调试

链接:

https://blog.csdn.net/qq_35116371/article/details/73479950

1.gdb调试单进程

步骤:

1.先打断点,再run/r让程序跑起来,它会到断点处停下来,然后再执行一系列命令;不然的话,程序就一直跑完了。

strat   //运行到mian函数的第一条语句处

2.命令

list/l

(1)gdb  -q  文件名

(2)show  listsize   //查看一次性显示几行

(3)set  listsize  num   //修改num

(4)list  5,10   //显示第5到10行代码

(5)list  func   //显示func函数周围的代码,多少和listsize有关

(6)list  test1.c : 5,10  //显示test1.c的5到10行

breakpoints(断点)

(1)break/b  行号     //设置断点

(2)break  7  if n==6   //如果n等于6,就在第7行打断点

(3)break   函数名    //打到某函数开头

(4)enable  num1    //启用num1号断点

(5)disable  num1   //禁用num1号断点

(6)info  b   //查看断点信息

(7)delete  num1  num2 ...  //删除num1号断点,num2号断点

(8)delete   //删除所有断点

debug

(1)run/r        //跑到第一个断点处,暂停

(2)next/n      //单步执行(F10)

(3)step/s       //单步执行(F11)

(4)continue/c          //从当前位置开始连续执行,到下一个断点

(5)print/p  变量或表达式    //打印出值

(6)display  变量名   //跟踪查看一个变量,每次停下都打印其值

(7)undisplay  变量名   //取消跟踪

其他

(1)ifno/i  locals    //查看当前栈帧局部变量的值

(2)breaktrace/bt    //查看各级函数调用及参数

(3)finish       //执行到当前函数返回,然后停下等待命令

(4)shell  clear    //清理屏幕

(5)search  str    //从当前行开始,向后找含有 str 的字符串

(6)reverse-search  str    //从当前行开始,向前找含有 str 的字符串

(7)until  num   //程序跳到第num行

(8)disassemble            //查看汇编代码  =>指向当前指令

 

2.gdb调试多进程

https://blog.csdn.net/qq_35116371/article/details/73479950

 

 

(1)show  follow-fork-mode  ||  show  detach-on-fork   //查看状态 (功能如上表)

(2)set  follow-fork-mode  child/parent    //设置

         set  detach-on-fork  off/on    //设置

(3)info  inferiors    //查看进程信息

(4)inferior   num    //切换到num号进程

3.gdb调试多线程

(1)ps  -aL   //查看当前运行的轻量级进程

(2)pstree  -p  主线程id  //查看主线程和新线程之间的关系

(3)pstack   线程id   //查看线程的来源

//

(1)gdb  -attach  进程id   //进入gdb调试

(2)info  threads     //查看线程信息

(3)bt  //查看当前线程的栈结构,默认是主线程

(4)thread  num   //切换到num号线程

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值