1.背景
程序的发布方式有两种,
debug
模式和
release
模式
1.Linux gcc/g++出来的二进制程序,默认是
release
模式
2.要使用gdb
调试,必须在源代码生成二进制程序的时候
,
加上
-
g
选项,才能是debug模式
这里的关键是:编译器形成可执行程序的时候会给可执行程序添加调试信息,所以同一个文件,release和debug后产生的文件大小是不同的,如下图:
2.指令
list
/
l
行号:显示
binFile
源代码,接着上次的位置往下列,每次列
10
行。
list
/
l
函数名:列出某个函数的源代码。
r
或
run
:运行程序。
n
或
next
:单条执行。
s
或
step
:进入函数调用
break(b)
行号:在某一行设置断点
break
函数名:在某个函数开头设置断点
info break
:查看断点信息。
finish
:执行到当前函数返回,然后挺下来等待命令
print(p)
:打印表达式的值,通过表达式可以修改变量的值或者调用函数
p
变量:打印变量值。
set var
:修改变量的值
continue(
或
c)
:从当前位置开始连续而非单步执行程序
run(
或
r)
:从开始连续而非单步执行程序
delete breakpoints
:删除所有断点
delete breakpoints n
:删除序号为
n
的断点
disable breakpoints
:禁用断点
enable breakpoints
:启用断点
info(
或
i) breakpoints
:参看当前设置了哪些断点
display
变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay
:取消对先前设置的那些变量的跟踪
until X
行号:跳至
X
行
breaktrace(
或
bt)
:查看各级函数调用及参数
info
(
i) locals
:查看当前栈帧局部变量的值
quit
:退出
gdb