背景
- gcc&&g++默认形成的可执行程序是release的,故无法直接被调试(如下图)
- 可以在编译时添加-g选项,使其生成debug模式的可执行程序
使用
下面以计算0~100总和的程序为例
-
gdb File:进入gdb
-
退出:ctrl + d / quit
-
-
list :接着上次浏览的位置,显示十行源代码
list n / l n:接着第n行,向下显示10行(gdb会记录最近一条命令,如果命令无变化可以直接按回车,如下图,直接回车重复执行 l 0命令)
list Func / l Func:显示名为Func的函数的源代码
-
break n / b n:在第n行打一个断点
-
break Func / b Fun:在名为Func的函数的开头设置断点
-
info break / info b:查看断点信息
-
r / run 开始调试,如果没有设置断点,就直接运行结束
-
delete break / d break / delete breakpoints / d breakpoints:删除所有断点
-
delete breakpoints n / d n:删除删除序号为n的断点
-
n / next :单挑执行(等同于vs中的逐过程、F10)
-
p 变量:打印变量值
-
s / step:进入函数调用
-
bt / breaktrace:查看各级函数调用及参数
-
finish:执行当前函数返回,然后停下来等待命令
-
display 变量名:跟踪查看每一个变量,每次停下来都显示它的值
-
undisplay : 取消对先前设置的那些变量的跟踪
undisplay n: 取消序号为n的变量的跟踪
-
until:跳转到指定行
-
c / continue:跳转至下一个断点
-
disable n:禁用序号为n的断点
-
enable n:启用序号为n的断点