当前位置:首页 > linux > 正文

linux 下gdb调试c语言(linux环境下gdb调试器功能)

  • linux
  • 2024-03-26 10:58:31
  • 6397
Linux 下使用 GDB 调试 C 语言
1. 编译带有调试信息的程序
Bash
gcc -g example.c -o example
2. 运行 GDB
Bash
gdb example
3. 重要 GDB 命令
基本命令:
| 命令 | 描述 |
|---|---|
| b | 设置断点 |
| r | 运行程序 |
| s | 逐语句执行 |
| n | 逐行执行 |
| p | 打印表达式的值 |
| bt | 打印调用堆栈 |
追踪变量:
| 命令 | 描述 |
|---|---|
| display | 显示变量的值每当它改变时 |
| watch | 设置断点,当变量的值改变时触发 |
内存操作:
| 命令 | 描述 |
|---|---|
| x | 按照指定格式查看内存内容 |
| p | 按照指定的表达式查看内存内容 |
| r | 修改内存内容 |
示例:
使用 p 命令打印变量值:
GDB
(gdb) p x
$1 = 10
使用 display 命令追踪变量:
GDB
(gdb) display x
Watchpoint 1: x = 10
(gdb) c
Continuing.
Breakpoint 1, main (argc=1, argv=0x7fff5fbff938) at example.c:8
8 printf("Value of x: %d\n", x);
(gdb) watch x
Watchpoint 2: x
Watchpoint 2: x = 20
Value of x: 20
使用 b 命令设置断点:
GDB
(gdb) b example.c:12
Breakpoint 1 at 0x400686: file example.c, line 12.
使用 s 命令逐语句执行:
GDB
(gdb) s
11 x = 10;
12 y = 20;
13 z = x + y;
(gdb) s
14 printf("Value of z: %d\n", z);
Value of z: 30
15 return 0;