gdb的使用
C++调试工具及调试技术
-
gdb的使用及常用命令
-
g++ 编译附加调试信息
命令:
g++ 文件名.cpp -o 可执行文件名.exe -g //-g附加调试信息
-
启动gdb
命令:
gdb 可执行文件名.exe -tui //-tui开启图形界面,不加-tui命令行界面
gdb -p pid //调试正在运行的进程
-
查看堆栈
命令:
bt/where
查看堆栈
bt full完整版,显示local变量
bt n 显示前n个堆栈
-
查看栈帧
frame //可简写为f
f + number表示去到对应的栈帧
up/down 栈帧上下切换
-
加断点
-
命令:
break 行号(或函数名) //break可简写为b
-
显示所有断点:
i b
-
清除所有断点:
d b
-
删掉第n个断点:
d n //n为断电号n
-
清除第n行的断点:
c n
-
-
运行程序:
命令:
run // 可简写为r
-
查看内存
命令:
x
- examine
- 查看内存
- x/x 以十六进制输出
- x/d 以十进制输出
- x/c 以单字符输出
- x/i 反汇编 – 通常,我们会使用 x/10i \(ip-20 来查看当前的汇编(\)ip是指令寄存器)
- x/s 以字符串输出
命令:info locals //查看当前栈局部变量
-
列出源代码
命令:
list //简写为l
-
执行控制
next n
step s
continue c
until u
-
打印一系列表达式
命令:
print //可简写为p
-