一、写作目的
作为程序开发、分析的利器,调试器的使用可以大幅度提升开发人员的工作效率。最近在研究TVM C++ runtime的代码逻辑,但是平时直接调试Python程序,并不能进入到C++里面,下面给出修正方案,实现Python和C++的混合调试。
二、工作环境
- 服务器系统:Ubuntu 18.04 64位
- 已安装:
- Python运行及调试环境
- C++运行及调试环境(GDB)
- TVM库(已经配置到可用)
- 已安装:
- 本地环境:VS code + Remote SSH远程连接
注意:应该在打开的VS code文件夹中,同时包含TVM源码文件夹、Python待执行代码,如果由于项目路径修改,导致python代码的import路径出错,可以通过添加”os.chdir(“your_path”)“解决
三、操作步骤
- 修改TVM源代码中的
Config.cmake
1 | 将 USE_RELAY_DEBUG 设置为 ON |
- 重新编译TVM源代码,注意命令的变化
1 | 对于原来的"cmake .."命令添加参数"-D CMAKE_BUILD_TYPE=DEBUG" |
- 在VS Code中,选中即将运行的Python程序,然后如图所示操作
修改launch.json
:
1 | { |
然后就可以在运行和调试选项中看到“GDB Launch”选项了。
- 在TVM C++或Python中打断点,通过”GDB Launch“选项开始调试即可。