调试器可以在汇编级别跟踪和调试代码, 掌握基本的调试命令对学习汇编和调试代码非常有帮助。常用的调试器有 gdb, lldb。这里以 gdb 为例介绍常用的调试命令。
在生成发布版本的程序时,应该去掉调试信息,并提供可能的编译优化。可以使用 -s
选项剥离调试信息,减少目标程序的大小。
gcc -O3 -s -o main main.c
如果生成可调试程序,需要加上必要的调试信息,使用 -g
选项:
sudo gcc -g -o main main.c
sudo gdb main
调试目标程序。
注意,gdb 中的命令允许使用最短唯一前缀,在不引起命令歧义的情况下可以简化命令输入。对于子命令也可以使用前缀,例如 info registers
可以简单记做 i r
。
非常重要,使用 help
可以查看支持的所有命令的种类,例如 断点、测试数据、检查内部状态、运行程序等、文件、TUI 等等
快捷键 Ctrl+x
然后 Ctrl+a
切换到 tui 模式或者关闭(tui enable/disable
)。
使用 tui
命令操作界面,这里只介绍 tui layout
/简写lay
子命令。