Ubuntu下C语言Debug工具GDB【1】安装和使用
1.什么是GDB
ubuntu上可以用来调试C,C++程序的debug工具。
2 如何安装GDB?
保证你的电脑上已经装有gcc、g++、cmake。
1. 下载最新的gdbwget https://ftp.gnu.org/gnu/gdb/gdb-10.1.tar.gz 2. 解压包tar -xzvf gdb-10.1.tar.gz 3. 生成makefilecd gdb-10.1/ mkdir build cd build ../configure 4. 编译安装make编译时会出现tex相关错误,所以先安装 textinfosudo apt-get install texinfo make -j8 sudo make install2.GDB功能及其对应命令
GDB功能强大,调试命令也有很多。但是对常见命令并不多,如下表所示:
| 命令 | 描述 | 参考示例 |
| gdb | 进入gdb调试 | gdb |
| help | 显示帮助信息 | help |
| quit(q) | 退出gdb调试环境 | |
| file | 加载被调试的可执行程序文件(文件是经过编译之后形成的可执行文件,在编译时,应该加上-g 选项,比如 gcc -o test_gdb test_dgb.c -g) | file test_gdb |
| list 行号 | 列出第几行开始的源代码 | |
| backtrace(bt) | 查看各级函数调用及参数 | |
| finish | 连续运行到当前函数返回为止,然后停下来等待命令 | |
| frame(f) 帧编号 | 选择栈帧 | |
| info(i) locals | 查看当前栈帧局部变量的值 | |
| list(l) | 列出源代码,接着上次的位置往下列,每次列十行 | |
| list 函数名 | 列出某个函数的源代码 | |
| next(n) | 执行下一行语句 | |
| print(p) | 打印表达式的值,通过表达式的值可以修改变量的值或者调用函数 | |
| run | 运行调试的程序(如果程序中没有设置断点,则程序会一直运行到结束或者出现异常结束,如果设置断点,则会在断点处停止) | r(run) |
| delete breakpoints 断点号 | 删掉此号的断点 | |
| clear | 清空所有的断点信息 | clear |
| continue(c) | 从当前位置开始连续运行程序,直到下一个断点或者程序结束 | c(continue) |
| set var | 修改变量的值 | |
| start | 开始执行程序,停在main函数第一行语句前面等待命令 | |
| step(s) | 执行下一行语句,如果有函数则进入到函数中 | |
| display 变量名 | 跟踪查看某个变量,每次停下来都显示它的值 | |
| disable breakpoints 断点号 | 禁用此断点 | |
| enable 断点号 | 启用此断点 | |
| info(i) breakpoints | 查看当前设置了哪些断点 | |
| undisplay 跟踪显示行号 | 取消跟踪显示 | |
| watch | 设置观察点 | |
| info(i) watchpoints | 查看当前设置了哪些观察点 | |
| x | 从某个位置开始打印存储单元的内容,全部当成字节来看,而不区分哪个字节属于哪个变量 |
3.举例说明
有程序mytest.cpp代码如下
#include <stdio.h> int func(int n) {int sum=0,i;for(i=0; i<n; i++){sum+=i;}return sum;}int main() {int i;int result = 0;for(i=1; i<=100; i++){result += i;}printf("result[1-100] = %d /n", result );printf("result[1-250] = %d /n", func(250) ); }3.1 编译的要点
对源程序进行编译,加上-g选项,使其可以进行调试。其结果是生成可执行文件test_gdb,并且可以对其进行gdb调试(对于该命令的详细解释,可以查看gcc命令)
gcc -o test_gdb mytest.cpp -g
3.2 如何进入gdb环境
进入gdb调试:
gdb
如上图最后一行所示,代表进入gdb调试,等待用户命令输入。
3 .3 加载被跟踪文件
加载文件
file test_gdb
显示加载成功。
3.4 显示程序段
list
3.5 如果在设置断点之前,输入r
run
程序正常运行,并且停留在第一条执行语句上,等待继续操作。
参考文章:
GDB调试从基础到精通实例 - azraelly - 博客园
ubuntu-mate下载:
下载地址为:Choose an architecture | Download (ubuntu-mate.org)
总结
以上是生活随笔为你收集整理的Ubuntu下C语言Debug工具GDB【1】安装和使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: ubuntu20.04下安装Docker
- 下一篇: ubuntu下安装java和tomcat