调试器可以在汇编级别跟踪和调试代码, 掌握基本的调试命令对学习汇编和调试代码非常有帮助。常用的调试器有 gdb, lldb。这里以 gdb 为例介绍常用的调试命令。

1. 编译

在生成发布版本的程序时,应该去掉调试信息,并提供可能的编译优化。可以使用 -s 选项剥离调试信息,减少目标程序的大小。

gcc -O3 -s -o main main.c

如果生成可调试程序,需要加上必要的调试信息,使用 -g 选项:

sudo gcc -g -o main main.c

2.命令

sudo gdb main 调试目标程序。

注意,gdb 中的命令允许使用最短唯一前缀,在不引起命令歧义的情况下可以简化命令输入。对于子命令也可以使用前缀,例如 info registers 可以简单记做 i r

help

非常重要,使用 help 可以查看支持的所有命令的种类,例如 断点、测试数据、检查内部状态、运行程序等、文件、TUI 等等

tui 界面

快捷键 Ctrl+x 然后 Ctrl+a 切换到 tui 模式或者关闭(tui enable/disable)。 使用 tui 命令操作界面,这里只介绍 tui layout/简写lay 子命令。