“PS Trace”(PS 追踪)工具会监控 CPU (ARMv8) 执行的每一条汇编指令。该工具会为在线诊断、性能调试与运行后数据分析提供洞察。PS Trace 会为代码执行情况提供细致入微的洞察。在 Vitis 调试会话中,您可以逐条指令查看 CPU 的具体操作,而不仅仅是源代码中的指示信息。
您可以查看并分析来自多个受支持的处理器的追踪数据,这些处理器包括:
- Arm® Cortex-A53
- Arm R52
- Arm A78
- Arm R5
- Arm R52
- Arm A72
OpenCSD 设置
OpenCSD 是一个开源 CoreSight 追踪解码库。该库提供了一个便于对 Arm CoreSight 追踪串流进行解码的 API。PS Trace 功能使用 OpenCSD 库对来自 Arm 处理器的 CoreSight 追踪数据进行解码。要访问追踪文件,必须先安装 OpenCSD,以便采用其库来将追踪二进制文件解码为人工可读格式的文件。请遵循以下步骤来安装 OpenCSD 库。
- 设置“INSTALL_PATH”环境变量,以指定已编译的 OpenCSD 文件的安装路径。
export INSTALL_PATH="/path/to/install/" - 将 OpenCSD GitHub 仓库克隆到您的本地主机。
git clone https://github.com/Linaro/OpenCSD.git - 安装 OpenCSD。
cd OpenCSD/decoder/build/linux/ make install PREFIX=$INSTALL_PATH - 最后,设置 OpenCSD 环境变量,以便 Vitis 工具使用 OpenCSD 库。要执行此操作,请在启动 Vitis 前使用以下命令:
export OPENCSD_PATH=$INSTALL_PATH
执行 PS Trace
步骤 1:启动配置设置
为应用程序启动调试配置 (launch.json)。启用追踪选项并设置追踪存储器相关的信息。
屏幕上的项如下所示:
- “Scratch Address”(临时地址):存储器中用于存储追踪二进制文件的起始地址。
- “Trace Decoded File”(追踪解码文件):用于存储追踪二进制文件的存储器长度。
- “Output File path”(输出文件路径):用于存储 Vitis 工具从追踪二进制文件生成的追踪汇总文件的位置。重要: 这是环形缓冲器。确保适当设置缓冲器大小;如果追踪数据超出此大小,那么新数据会覆盖现有缓冲器内容。
步骤 2:添加断点
PS Trace 包含了追踪开始与追踪开始断点的放置。您通过放置这些断点来包围的代码节就是要追踪的代码节。在设置断点前,请先确认要追踪的代码行。
开始调试会话,并在Debug(调试)视图中设置追踪开始断点。要添加追踪开始断点,请在source code(源代码)视图中右键单击包含您要追踪的第一部分指令的行号。
同样,要添加追踪停止断点,请在源代码视图中右键单击要停止追踪的指令所在位置的行号。
单击Continue(继续)开始调试会话。如果到达追踪开始断点,请等待右下角出现确认开始追踪的通知。下一步,单击Debug视图中的Continue(继续)以触发追踪。
命中追踪停止断点后,请等待右下角显示生成追踪摘要的通知。单击Open(打开)查看追踪文件。您也可以转至Vitis→PS Trace→Open PS Trace(Vitis > PS Trace > 打开 PS Trace),并导航到您设置的用于存储追踪文件的文件夹。
单击“Set Source Mapping”(设置源代码映射)对话框中的“Browse”(浏览),导航到 ELF 文件所在的文件夹。
单击“OK”(确定)。系统会显示Trace File(追踪文件)屏幕。
在Trace File视图中,您可以执行以下操作来有效分析追踪报告。