https://cloud.tencent.com/developer/article/1469554
https://www.cnblogs.com/arnoldlu/p/9633254.html
gcc main.c sum.c -o main -g
gdb main
info breakpoints #查看所有的断点
b main.c:24 # 设置断点 b main.c:main 可以用行号或者函数名字来设置断点
break main.c:25 if a==109 #条件断点
#disable #禁用所有断点
#disable bnum #禁用标号为bnum的断点
#enable #启用所有断点
#enable bnum #启用标号为bnum的断点
断点清除:
断点清除主要用到clear和delete命令。常见使用如下:
clear #删除当前行所有breakpoints
clear function #删除函数名为function处的断点
clear filename:function #删除文件filename中函数function处的断点
clear lineNum #删除行号为lineNum处的断点
clear f:lename:lineNum #删除文件filename中行号为lineNum处的断点
delete #删除所有breakpoints,watchpoints和catchpoints
delete bnum #删除断点号为bnum的断点
设置好断点信息后,接下来进行程序运行:
(gdb) run 90
(gdb) next
(gdb) p a
(gdb) display a
(gdb) display &a
(gdb) x/20x 0x7fffffffdc94 #查看内存地址是0x7fffffffdc94的后面的内存20个的值
watch *地址 可用在地址下面的内容发送变化时断住
通过bt可以显示栈帧,bt full可以显示局部变量
break main.c: if a==109