Linux_gdb使用

2019-09-27 0 条评论 86 次阅读 0 人点赞
  • 程序的发布方式有两种,debug模式和release模式
  • Linux gcc/g++出来的二进制程序,默认是release模式
  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项[重要] (如果在编译时没有加入-g参数,gdb命令也可以运行,但是只能通过run指令跑完程序,查看代码、变量、函数和打断点等功能都不能正常执行了)
  • 成功编译得到带有调试信息的可执行程序后,我们通过gdb 文件名的命令开始gdb调试,这里支持绝对路径和相对路径,接着就会进入gdb的命令行模式

命令整理

命令及格式 功能
l(list) 行号 显示binFile源代码,接着上次的位置往下列,每次列10行。[重要]
l(list) 函数名 列出某个函数的源代码
r(run) 运行程序[重要]
n(next) 逐语句执行(对应IDEA的F11)[重要]
s(step) 逐过程执行/进入函数调用(对应IDEA的F10)[重要]
b(break) 行号/函数/条件表达式 在某一行/某函数/某条件表达式处设置断点[重要]
info break 查看断点信息
finish 执行到当前表达式的值, 通过表达式可以修改变量的值或者调用函数
p 变量 打印变量值[重要]
set var 修改变量的值
c(continiue) 从当前位置开始连续而非单步执行程序 [重要]
r(run) 从开始连续而非单步执行程序
delete breakpoints 删除所有断点
delete breakpoints n 删除序号为n的断点[重要]
disable breakpoints 禁用断点
enable breakpoints 启用断点
info(或i) breakpoints 查看当前设置了哪些断点
display 变量名 跟踪查看一个变量,每次停下来都显示它的值
undisplay 取消对先前设置的那些变量的跟踪
until X行号 跳至X行
bt (breaktrace) 查看各级函数调用及参数
info(i) locals 查看当前栈帧局部变量的值
quit 退出gdb [重要]

在输入命令时按一次/两次 tab 键可以自动补全/列出可能的命令

L_KingMing

这个人太懒什么东西都没留下

文章评论(0)