Alveo 加速器的软件仿真调试 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

您可以使用以下过程,在 Alveo™ 加速器卡的软件仿真中调试系统。此过程会启动一个新终端,以允许使用 gdb 命令并显示源文件用于单步执行代码。

  1. 构建主机和内核时,使用 -g--debug 选项来完成 sw_emu 构建进程。
  2. 在运行应用之前,向 xrt.ini 文件添加 kernel-dbg=true 选项:
    [Emulation]
    kernel-dbg=true
  3. 在数据中心加速器卡上运行仿真 中所述,将 XCL_EMULATION_MODE 设置为 sw_emu
    setenv XCL_EMULATION_MODE sw_emu
  4. 使用 .xclbin 文件启动主机应用:./host.exe a.xclbin

    启动主机应用还会在单独的终端内启动 gdb,以允许您在 .xclbin 中调试 PL 内核。在 gdb 中,您可以执行所有典型活动以设置自己的调试环境,例如,为 PL 内核插入断点,单步或继续执行各项命令以执行完整代码。

  5. gdb 中,您可使用该语法在函数名称或行号上设置断点。执行期间,当 gdb 到达此断点时,它只要能够找到源代码,就会自动打开含正确行号的文件。例如:
    break <filename>:<function name>
    break <filename>:<line_num >

    此外,您可以使用 b Vadd_A_B 等命令来为内核设置断点。此命令会在调用指定内核时,在 gdb 中暂停执行 .xclbin,在此处示例中,指定内核为 Vadd_A_B 内核。在含多个内核的 .xclbin 文件中,可以为所有内核或部分特定内核添加断点。

    注释:gdb 中设置断点时,您会看到一条有关函数未定义的注释,它会提示您在后续加载时暂挂断点。请输入y继续。
  6. gdb 终端内,按r以运行应用并单步执行代码、设置变量值,然后继续。
    提示: 要在 gdb 中使用文本用户界面 (Textual User Interface, TUI),请使用以下按键:
    Ctrl+x Ctrl+a
  7. 如显示 TUI,则会显示内核的源代码,和指向 .xclbin 中软件仿真构建进程所定义的源代码的路径。
  8. 单步执行代码,或者按c让代码运行直至完成。软件仿真结果会显示在原始命令终端内。
  9. q退出 gdb
  10. 关闭 gdb 命令终端。