Linux GDB 断点
时间: 2024-12-06 11:15:46 浏览: 16
GDB(GNU Debugger)是Linux系统中最常用的调试工具之一。它允许开发者逐行执行代码、查看变量值、设置断点等,从而帮助开发者找出程序中的错误。以下是关于Linux GDB断点的一些基本介绍:
1. **设置断点**:
- **按行号设置断点**:在某个文件的某一行设置断点。例如,`break main.c:10` 会在 `main.c` 文件的第10行设置断点。
- **按函数名设置断点**:在某个函数的第一行设置断点。例如,`break main` 会在 `main` 函数的第一行设置断点。
- **按条件设置断点**:只有当某个条件满足时,断点才会生效。例如,`break main.c:10 if i == 5` 会在 `main.c` 文件的第10行设置断点,但只有当变量 `i` 等于5时,断点才会生效。
2. **查看断点**:
- 使用 `info breakpoints` 命令可以查看当前所有设置的断点及其状态。
3. **删除断点**:
- 使用 `delete breakpoint_number` 命令可以删除指定编号的断点。例如,`delete 1` 会删除编号为1的断点。
- 使用 `clear` 命令可以删除当前行或指定位置的断点。例如,`clear main.c:10` 会删除在 `main.c` 文件第10行的断点。
4. **禁用和启用断点**:
- 使用 `disable breakpoint_number` 命令可以禁用指定编号的断点。
- 使用 `enable breakpoint_number` 命令可以启用指定编号的断点。
5. **继续执行程序**:
- 使用 `continue` 命令可以让程序继续执行,直到下一个断点或程序结束。
6. **单步执行**:
- 使用 `step` 命令可以单步执行程序,进入函数内部。
- 使用 `next` 命令可以单步执行程序,但不进入函数内部。
以下是一个简单的示例,展示了如何在GDB中使用断点:
```sh
$ gdb ./my_program
(gdb) break main
(gdb) run
(gdb) next
(gdb) print variable
(gdb) continue
(gdb) quit
```
在这个示例中,我们首先在 `main` 函数处设置了一个断点,然后运行程序。当程序在 `main` 函数处停下后,我们使用 `next` 命令单步执行程序,使用 `print` 命令查看变量的值,最后使用 `continue` 命令继续执行程序,直到程序结束。
阅读全文