/ gdb

GDB调试

在公司被安排去写C代码了,之前没在linux下搞过C,不知道咋调试,经过几周的折腾,总算是摸出了点门路。

1.程序出core,针对core文件的调试

gdb -c core文件 程序路径

然后输入bt可以看到导致core的代码,可以使用up和down两个命令来控制上下文

p 变量名

可以打印出当时内存中的值。

2.程序运行时调试

首先要获取到进程ID,然后在gdb中输入

attach 进程ID

多线程程序可以用info thread来查看线程列表,每个线程对应一个标号,可以用

thread 标号

来切换线程,同样可以用bt命令来查看当前运行到的代码。

下断点可以用b命令

b filepath:line

filepath一定要是当前目录的相对路径,否则可能报错。

也可以加上判断

b filepath:line if a==1

下完断点之后输入c,让程序继续运行,遇到断点并且满足条件就会停止运行。

可以用n命令让程序执行下一行,step命令可以进入函数,c命令继续运行。

info b

可以看到所有断点。

clear filepath:line

删除断点。

GDB调试
Share this