· Jun
GDB简介
gdb全称GNU Debugger,是一个支持多语言的调试工具。
使用
编译时启用debug symbol
开启GDB调试
调试时加入参数
假设原程序以./a.out 4 2的方式运行,我们可以在开启gdb后以r 4 2的方式调试。
更友好的文本界面
- ctrl-x-a 打开文本界面
- ctrl-l 重新渲染界面
- ctrl-x-2 查看反汇编和寄存器
- ctrl-x-1 返回原界面
- ctrl-p 上一条指令
- ctrl-n 下一条指令
断点
break function_name在某一函数开始时断下来break *0x1234在某一地址断下来break 42在某行断下来
条件断点
比如:
删除断点
delete 1删除某一断点delete删除所有断点
执行
nextstepfinishcontinue
查看数据
-
printprint $raxprint variableprint *(int*)0x1234
-
infoinfo registersinfo frameinfo break
-
display始终打印出某一变量或寄存器undisplay取消打印
-
whatis检查类型
回放调试
record在程序开始运行后执行,开始录制reverse-stepireverse-contiune
外部脚本
Python
Shell
GDB配置文件
gdb的配置文件位于~/.gdbinit中
示例配置:
|
|























