GDB调试基本操作
GDB是什么?GDB是一个Linux平台下的调试工具,可以用来调试C语言 ,C++等语言编写的程序。下面介绍了GDB的几种基本操作。和在Shell下相同,可以使用Tab键补全命令。
- GDB的启动
gdb
gdb fiel prog
想要使用GDB调试程序需要在编译时在源文件名前加上-g命令
gcc [other flags] -g <source files> -o <output file>
进入GDB后,你的命令行中会出现这样的提示符
(gdb)
- 退出GDB
(gdb)q
- 选择调试的程序
如果你在进入GDB时没有选择要进行调试的程序:
(gdb)file prog
- 运行程序
(gdb)run
- 设置断点
GDB中有多种设置断点的方式
(gdb) break file.c:6
在源程序的某一行设置断点
(gdb) break my_func
在进入某个函数时设置断点
(gdb) break file1.c:6 if i >= ARRAYSIZE
设置一个条件断点,只有在条件满足时才会中断程序。
(gdb) watch my_var
每当my_var的值改变时中断程序。
- 继续运行程序
(gdb) continue
继续运行程序,直到遇到下一个断点
(gdb) step
执行下一条语句
(gdb) next
执行下一条语句,与step不同的是,next会将循环当作一条语句。
(gdb) finish
执行到当前函数结束为止
- 查看变量的值
(gdb) print my_var
(gdb) print/x my_var
/x命令会将变量以十六进制的形式显示。
print还可以用来查看指针的值。
- 删除断点
(gdb) delete num
num是断点的编号
- 查看堆栈
(gdb) backtrace
(gdb) where
- 查看断点信息
(gdb) info breakpoints
参考文献
GDB Tutorial