Vitis IDE 调试环境具有诸多基于 GUI 的传统调试环境内常见的功能特性,例如 GDB。您可在代码中添加断点、单步跳过或单步进入代码、循环或函数的特定行、检验变量状态并将其强制设为特定值。“Debug”(调试)视图包含多个窗口或视图,如下图所示。
图 1. “Debug”视图
- “Control Panel”(控制面板)
-
“Debug”视图Control Panel显示在屏幕左上角,如下图所示。调试期间,您可以使用Continue(继续)、Step Over(单步跳过)、Step Into(单步进入)、Step Out(单步跳出)、Restart(重新启动)和Stop(停止)等控制按钮来控制调试进程。
图 2. 调试控制面板 - “Threads”(线程)
- Threads(线程)用于显示相关调试线程。线程是在调试进程中创建和销毁的。您可在多个线程之间进行切换。
- “Call Stack”(调用栈)
- Call Stack(调用栈)显示了运行应用时更新的函数调用栈。
- “Variables”(变量)
- Variables(变量)显示了全局变量和局部变量的当前值。切换线程时,会更新变量信息。
- “Watch”(观察)
- Watch(观察)显示了您指定要关注的变量和表达式。要添加观察点,请选中Add Expression(添加表达式)(+)。
- “Breakpoints”(断点)
-
Vitis IDE 会在主机组件的 main 函数处与 PL 内核的 top 函数处设置断点,前提是这些函数可调试。要添加断点,可打开源文件并单击行号左侧显示红点处。您可单击先前添加的断点以将其移除。
显示红点时,您可右键单击并选中Add Conditional Breakpoint(添加条件断点)来添加条件断点。您还可右键单击并选中Add Logpoint(添加记录点)插入到达断点时要记录的消息。
- “Source Code Editor”(源代码编辑器)
- 从Flow Navigator或Launch Configuration(启动配置)视图启动Debug时,会打开Source Code(源代码)视图。
- “Memory Inspector”(存储器检查器)
- Memory Inspector会显示特定存储器地址的内容。
- “Register Inspector”(寄存器检查器)
- 在应用组件源代码中触发断点时,Register Inspector会显示 Cortex-A72 寄存器,在 AI 引擎内核中触发断点时,此视图会显示 AI 引擎的寄存器。
- “Disassembly”(反汇编)视图
- 您可从“Source Code”窗口的右键单击菜单中打开Disassembly视图。
- “Debug Console”(调试控制台)
- 此调试控制台会显示调试进程的转录文本,以及从受测应用接收到的任何消息,例如,来自
printf()
语句的文本。
提示:
Vitis Unified IDE 还会从工具栏菜单显示Debug视图的状态,并以蓝色圆圈高亮显示调试中正在运行的会话数量。如果您已更改视图,而Debug仍在运行,那么这项提醒很有帮助。