gdb to debug

本文最后更新于:8 个月前

先使用编译器生成可执行文件,注意使用 \(-g\) 包含调试信息(保留变量名以及函数名方便调试)

1
2
gcc -g main.c -o main
g++ -g main.cpp -o main

然后使用 \(gdb\) 工具进入到调试界面中

1
2
3
gdb main
……………………
(gbd) 待输入的命令

监测单变量的变化(比如说 \(tot[1]\)

1
2
3
4
(gdb) watch tot[1]		//输入监测点名称,watch 代表当 tot[1] 变化时报告
(gbd) awatch tot[1] //输入监测点名称,awatch 代表读取和写入 tot[1] 时都会报告
Hardware watchpoint 1: tot[1] //输出监测标记信息(可以添加多个监测点)
(gdb) run //或者简写 r,运行程序

每次监测变量改变的时候就会停下来报告改变量,停下来后可以打印当前程序的中间值 print tot[0](或者 p tot[0])、单步运行程序 tot[1] += 1、继续运行程序 continue(或者 c )修改对应变量的值 set variable tot[1] = 1

将所有断点以及监视变量删除

1
2
(gdb) delete
Delete all breakpoints? (y or n) y

查看代码操作

1
2
3
list		//展示当前
list 5 //展示以 5 为中心的代码
list 1,20 //展示第 1 行到第 20 行的代码(最多展示 30 行代码)

gdb to debug
https://lr-tsinghua11.github.io/2022/03/18/%E7%BC%96%E7%A8%8B/gdb%E8%B0%83%E8%AF%95%E5%99%A8/
作者
Learning_rate
发布于
2022年3月18日
许可协议