gdb调试命令

编译

要用gdb调试, 需要在gcc编译时加-g选项
gcc -g main.c -o main

基本命令

gdb [a.out] 开始调试a.out程序
start 停在main函数第一行语句等待下一个命令
run 执行到下一个断点, 或阻塞语句, 或到程序结束
list/l 列出源代码
next/n 下一行,不进入函数内部,直接执行完毕到下一行
step/s 下一步,如果有函数, 则进入函数内部
until/u [lineno] 执行到第几行, 经常用于跳过for/while循环
quit 退出调试

变量

info/i local 查看当前函数的所有局部变量
print/p [arg] 打印变量arg的值, arg为实际中的变量, 不用加中括号
set var 修改变量的值
run arg1 arg2 ... 此句用在gdb main与start中间, 效果同main arg1 arg2 ...,也就是传入命令行参数
x/[num]b ptr 以字节为单位16进制显示内存的内容, 从ptr所在单元开始, 一共显示num项

断点

break/b line 在第line行设置一个断点
break funcname 在funcname函数开头设置断点
disable breakpoints 禁用断点,使所有断点失效
enable breakpoints 启用断点,使所有断点有效
info/i breakpoints 查看设置了哪些断点

原文地址:https://www.cnblogs.com/cfans1993/p/5883363.html