First
为调试而编译时,要加-g关键字
gcc -g test.c -o test
-g的作用是:
1、创建符号表,符号表包含了程序中使用的变量名称的列表。
2、关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。
Second
gdb命令
启动和退出
gdb 可执行程序
quit
给程序设置参数/获取设置参数
set args 10 20
show args
gdb使用帮助
help
查看当前文件代码
list/l (从默认位置开始显示)
list/l 行号 (从指定行显示)
list/l 函数名 (从指定的函数显示)
查看非当前文件代码
list/l 文件名:行号
list/l 文件名:函数名
设置显示的行数
show list/listsize
set list/listsize 行数
Third
设置断点
b\break 行号
b\break 函数名
b\break 文件名:行号
b\break 文件名:函数
查看断点
i/info b/break
删除断点
d/del/delete 断点编号
设置断点无效
dis/disable 断点编号
设置断点生成
ena/enable 断点编号
设置条件断点(一般用在循环的位置)
b/break 10 if i == 5
Fourth
运行gdb程序
start(程序停在第一行)
run(遇到断点才停)
继续运行,到下一个断点停
c/continue
向下执行一行代码(不会进入函数体)
n/next
变量操作
p/print 变量名(打印变量值)
ptype 变量名(打印变量类型)
向下单步调试(遇到函数进入函数体)
s/step
finish(跳出函数体)(需要删除后边的断点)
自动变量操作(每次向下执行都会输出被设置变量的值)
display num(自动打印指定变量的值)
i/info display
undisplay 编号
其它操作
set var 变量名 = 变量值 (在程序运行时更改变量值,使程序跳到相应的状态)
until (跳出循环)(需要删除循环中的断点)
标签:函数,list,break,gdb,设置,断点 From: https://www.cnblogs.com/WTSRUVF/p/17331407.html