GDB一些常用的命令

mac上装gdb还是比较麻烦的,好像homebrew上面很多东西被墙了,装东西很慢不过花了整整一个晚上的时间终于装好了。

首先你想用gdb调试你写的C代码,那么在用Gcc编译的时候一定要把源代码信息也一切编译进去。

gcc quick_sort.c -o a.out -g

这里的-g就表示吧源代码信息一起编译进输出文件。

启动gdb有两种方式。

gdb命令后面直接接调试的可执行文件
gdb [options] [executable-file [core-file or process-id]]

gdb a.out

也可以直接打gdb命令启动gdb,然后在交互环境通过file + 目标文件这个命令来导入需要调试的可执行文件。

l(list) 表示显示代码,l 23列出第23行前后5行代码(18-28行)。

b(breakpoint) 表示设置断点,b main这个命令可以在main函数开始的地方设置断点。 也可以这样用b 12这个命令可以在12行设置一个断点。

c(continue) 表示继续执行到下一个断点。

n(next) 表示执行下一条语句,注意这里的下一条语句是不会进入被调用的函数内部的。

s(step) 表示单步调试的下一步, 这里的下一步是会进入被调用的函数内部的。

d(delete) 表示删除断点。 d 2表示删除编号为2的断点,断点的编号是递增的。

r(run) 表示启动执行程序。可以在调试一半然后重新启动执行程序。

p(print) 输出一个变量。p a输出a的值。

clear 清除所有断点。

基本上目前常用点的都在上面了。