gdb的使用
目录:
1.什么是gdb
概念:gdb
(GNU Debugger)是 Linux 系统上常用的调试工具,主要用于调试 C、C++ 等编程语言编写的程序。gdb
可以帮助开发者分析程序的运行时行为、跟踪代码的执行、查找程序崩溃的原因、检查变量值等。
2.基本功能
- 设置断点:可以在程序的某行或某个函数设置断点,当程序运行到该点时暂停执行。
- 单步执行:逐步执行代码,可以跟踪程序的执行流程。
- 检查变量:查看和修改变量的值,检查程序的状态。
- 跟踪堆栈:查看函数调用堆栈,找到程序崩溃时的上下文。
- 查看内存:检查内存中的数据,尤其在调试指针和复杂数据结构时很有用。
3.基本操作流程
为了能够在 gdb
中调试,需要在编译时使用 -g
选项生成包含调试信息的可执行文件:
$ gcc -g -o my_program my_program.c
这样生成的可执行文件包含调试符号,才能在 gdb
中追踪代码。
3.1启动gdb
使用 gdb
启动可执行文件:
$ gdb ./my_program
进入 gdb
的交互式命令行界面。
3.2运行程序
run
这会开始执行程序,直到程序结束或遇到断点。
3.3设置断点
-
给特定行设置断点:
break 行号
-
在特定函数设置断点:
break 函数名
3.4单步执行
-
逐行执行(跳入函数内部):
step
-
逐行执行(不跳入函数内部):
next
3.5查看变量值
print 变量名
eg:print sum
将查看变量sum
的值。
3.6查看源码上下文
l
默认会显示当前行及其前后几行的代码。
3.7继续运行程序
continue
程序会从断点处继续运行,直到下一个断点或程序结束。
3.8删除断点
delete 断点号
例如,delete 1
会删除编号为 1 的断点。使用 info breakpoints
查看断点编号。
3.9退出gdb
quit