没有理想的人不伤心

GDB调试器基础

2024/06/27
3
0

image.png

GDB 调试器

用来调试 C 或 C++程序

在编译时,要加上参数-g,来告诉程序试图进行调试,不加不行

gcc -g -o hello hello.c
  1. 开始调试

gdb hello

  1. 设置断点 break

break hello.c:10

break 10

在 hello.c 文件的第 10 行设置一个断点

  1. 查看断点、监测点

info breakpoints

info watchpoints

  1. 运行代码

run

当程序遇到断点时,它会暂停

  1. 查看断点附近的十行源代码

list

  1. 单步运行(一行一行运行)

next 不进入函数运行

step 进入函数运行

  1. 检查变量 print

print variable_name 打印变量

set <variable_name> = <value> 改变变量值

  1. 监视变量(Watchpoints)

watch <variable_name>

每当发生更改时,程序都会暂停并向您提供更改的详细信息。

Continuing.
Hardware watchpoint 2:variable

Old value = 0
New value = 1
0x08048754 at main.cpp:31
31        variable=isalpha(ch)

只有当变量在作用域中时,才能为其设置 Watchpoints。

因此,要监视另一个函数或内部块中的某些内容,首先在该范围内设置一个断点,然后当程序暂停在那里时,设置观察点。

  1. 继续运行

continue

  1. 退出

kill 停止正在运行的程序

quit 退出 GDB