Linux中gdb调试

编译生成调试文件:

gcc test1.c -g -o test1

其中-g参数表示用gdb调试,test1.c表示源C文件,test1是生成的可执行文件。

安装gdb:

apt-get install gdb

进入调试:

gdb test1
Linux中gdb调试_第1张图片
1.png

开始调试:

start
Linux中gdb调试_第2张图片
2.png
  1. 显示代码:
list

简写用字母l

  1. 查看函数内容:
list 函数名称
  1. 查看某行代码:
list 行数
  1. 执行下一步:
next

简写用字母n

直接回车,还是执行上述最近的一个命令,如果上面的一个命令为n,那回车就相当于又输入了n;如果上面的一个命令为l,那回车就相当于又输入了l。

  1. 查看变量:
print 变量名

简写:

p 变量名
  1. 当执行到某个函数的时候,想要进入到该函数:
step

简写用小写字母s

  1. 设置断点:
break 行号

简写为:

b 行号
  1. 查看断点信息:
info breakpoints
  1. 全速运行,遇到断点会停止:
continue

简写为字母c

  1. 删除断点:
delete breakpoints 断点编号
  1. 修改变量的值:
set var 变量名 = 值
  1. 程序调用堆栈:
backtrace

简写为bt,当前函数之前的所有已调用函数列表,每一个都分配一个“帧”,最近调用的函数在0号帧里。

3.png
  1. 切换栈帧:
frame 帧号

切换栈帧之后,就可以查看该栈的变量了。

  1. 自动显示:
display 变量名
  1. 取消自动显示:
undisplay 行号
  1. 查看内存布局:
x / 20 地址

查看buff数组的前20个元素

x / 20 buff
  1. 程序非正常退出,如何查看错误?
  1. ulimit -a 查看core文件是否分配大小
  2. ulimit -c 1024 创建的core文件大小为1204字节
  3. gcc test2.c -g -o test2 编译链接得到带有-g选项的可执行程序
  4. ./test2 执行程序,会生成core日志文件
  5. gdb test2 core 打开日志文件,定位错误信息到具体的代码行数

喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!

你可能感兴趣的:(Linux中gdb调试)