对相应目标成功完成编译后,即可启动仿真并将 GDB 实例自动附加到仿真中。要启动交互式 GDB 会话,请以 --gdb
开关运行以下命令。
x86simulator --gdb
默认情况下,使用 --gdb
命令行开关运行 x86 仿真器时,它会在 graph.cpp 中进入 main()
之前立即中断。这样即可在任意 AI 引擎内核开始之前暂停执行,因为 graph 尚未运行。要退出 GDB,请输入 quit
或 help
以获取更多命令。
有多种方式可用于设置断点。一种方法是使用以下语法:
break <kernel_function_name>
通过输入 continue
(简略为 c
),调试器即可运行直至达到 <kernel function name>
中的断点为止。达到断点时,可以检验局部栈变量和函数实参。下表显示了允许用于检验这些变量的部分常用 GDB 指令。
命令 | 描述 |
---|---|
info stack
|
报告位于当前断点的函数调用栈。 |
info
locals
|
显示局部变量的当前状态,这些变量位于调用栈内显示的函数调用作用域内。 |
print
<local_variable_name>
|
打印单个变量的当前值。 |
finish
|
退出当前函数调用,但使所有仿真保持暂停状态。 |
continue
|
使调试器运行直至完成。 |
GDB 是非常强大的调试器,具有诸多功能特性。GDB 的完整文档不在本文档讨论范围内。如需获取 GDB 文档,请参阅 https://sourceware.org/gdb/current/onlinedocs/gdb.pdf 和 https://sourceware.org/gdb/current/onlinedocs/refcard.pdf。