gdb常用调试命令 + 多进程调试命令

要使用 gdb 调试,必须在gcc / g++ 生成执行文件时,加上 -g 选项,那么在生成的时候,就会在该执行文件中加入一些debug信息。

gcc -g -o test test.c

目录

1、常用调试命令

(1) 进入 / 退出调试模式

(2) 开始调试

2、多进程调试命令

1、跟踪父进程或子进程调试

2、进程间切换


1、常用调试命令

(1) 进入 / 退出调试模式

进入调试模式: gdb  执行文件名。如 gdb test

退出调试模式:ctrl + d 或者 quit 命令

(2) 开始调试

实际开始调试时,涉及到的命令可以参考如下表格:

调试命令含义
list / l   行号从某一行开始往下显示,一次显示10行。l 2:表示从第二行开始显示10行的内容。
list / l   函数名显示某个函数的源码。l  main:显示main函数的全部内容
run / r运行程序,遇到断点会停下来
next / n单行执行
step / s进入函数调用
breaktrace / bt查看各级函数的调用及参数(相当于VS中的调用堆栈)
display  变量名跟踪查看一个变量,每次停下来都显示它的值
break / b  行号在某一行设置断点
info break查看断点信息
delete breakpoints n删除序号为 n 的断点,注意是序号,不是行号(使用info break查看断点序号)
delete breakpoints删除所有断点
finish执行完当前函数停下来
continue

直接到达下一个断点

until  行号  直接跳转到指定行。until 5:跳转到第5行

2、多进程调试命令

1、跟踪父进程或子进程调试

默认情况下,gdb跟踪的是父进程,如果要查看gdb的跟踪状态,可以输入

show follow-fork-mode      # 查看当前 gdb 的跟踪状态

如果要跟踪子进程,可以输入

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

如果要重新跟踪父进程,可以输入 

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

2、进程间切换

gdb 默认只跟踪一个进程,要实现进程间切换,需要让两个进程都在gdb的控制下。输入下面的指令后,一个进程会处于调试状态(follow-fork-mode决定),另一个会暂停

set show detach-on-fork off     # 让父子进程都在gdb的控制下

查看当前进程的信息

info inferiors        # info 查看当前进程信息

切换到指定进程

inferiors  进程序号    # 上一步可以查到进程序号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值