gdb

Posted on 2023-01-10 15:11  lyc2002  阅读(23)  评论(0编辑  收藏  举报

编译注意

程序要想使用 gdb 调试,编译时要加上 -g

传入参数

设置传入参数:set args

显示传入参数:show args

代码

查看代码:list 文件名:函数名或行号

设置查看代码行数:set listsize

断点

打断点:break 文件名:函数名或行号

删除断点:delete 端点编号

显示断点信息:info break

使断点无效:disable 断点编号

使断点有效:enable 断点编号

调试

程序停在第一行:start

运行直到断点:run

继续直到断点:continue

单步调试,不进入函数体:next

单步调试,进入函数体:step

跳出函数体:finish

打印变量值:print 变量名

打印变量类型:ptype 变量名

设置自动变量:display 变量名

查看自动变量:info display

取消自动变量:undisplay 编号

多进程调试

在 fork 函数调用之前通过指令 set follow-fork-mod parent/child 设置跟踪父进程还是子进程

set detach-on-fork on/off 默认为 on 表示调试当前进程时其他进程继续运行;若为 off 表示调试当前进程时其他进程被 gdb 挂起

查看调试的进程:info inferiors

切换当前调试的进程:inferior id

使进程脱离 gdb 调试:detach inferiors id