0
点赞
收藏
分享

微信扫一扫

gdb调试的常用参数说明

gcc hello.c -g -o hello 就会生成待调试信息的hello可执行程序

gdb hello 就会进入调试状态

查看源代码: 

l 查看main源代码(L的小写,不是数字1),list的缩写

l [filename:linenum] 查看指定文件的指定行的源代码

继续查看按l

l [filename:func] 查看指定文件的指定函数的源代码

继续查看按l

设置断点:

b [linenum] 第几行打断点,或者break的缩写

b [10] if [i==5] 就是在第十行当i等于5时停下

b [func] 在func函数入口处打断点

del/d [num] 删除断点,del即delete,num通过info break查看,没有[num]表示全部删除,num也可以是一个范围,比如(2,8)

disable [num] 禁用断点,num通过info break查看

enable [num] 启用断点,num通过info break查看

查看值:

i b 查看断点,i即info,b即break,

p a 打印变量a的值,p即print

ptype a 打印a的变量类型

display a 追踪变量a,一般循环里面使用

undisplay [num] 不追踪变量,num通过info display查看

set var i=10 直接从i等于10开始执行,一般用于循环里面

运行程序:

start 启动调试,只执行一行代码

r 即run,启动调试,执行到第一个断点的位置

quit 退出调试状态

n 即next,执行下一步

c 即continue,执行到下一个断点处

u 即util,跳出单次循环

s 即step,进入函数

finish 跳出当前函数,需要先删除该函数的所有断点del [num]

多进程调试: 

set follow-fork-mode parent 跟踪父进程

set follow-fork-mode child 跟踪子进程

附:一定要在fork之前设置才有效





举报

相关推荐

0 条评论