MindStudio Debug VSCode Plugin
介绍
MindStudio Debug VSCode Plugin基于msdebug上板调试算子工具提供VSCode可视化调试昇腾算子功能。
附:算子开发编程语言Ascend C简介
特性
- 断点调试(设置/删除/禁用/启用断点)
- 单步执行调试(逐行执行/内部执行/跳出函数)/继续/暂停/重启
- 查看变量/寄存器/堆栈/断点信息,监视器支持执行表达式
- 内存查询
- 核切换
规格要求
- VSCode-huawei (v1.81.3版本及以上)
- VSCode-huawei已安装远程登录插件
- 支持平台: Linux
- 调试AscendC算子程序时,Linux环境已安装CANN工具包(含算子调试器)
- 仅支持调试AscendC算子,且算子经过调试模式重新编译后才能调试
- 当前支持的CANN包最低版本:
- 社区版: 8.0.RC3.alpha001
- 商用版:暂不支持
约束
功能
快速使用
- 打开VSCode-huawei IDE界面,安装远程登录插件(如Remote-SSH)
- IDE界面远程SSH登录算子开发环境,打开已编译的算子工程文件
- 安装
MindStudio Debug VSCode Plugin 插件
- 插件.vsix文件上传linux环境
- 展开IDE界面左侧边栏的插件菜单
- 点击右上角...图标,选择Install from VSIX...选项,选择本地的插件文件进行安装
- 插件.vsix文件上传linux环境
- 后台输入命令安装插件文件: code --install-extension /xx_dir/MindStudio-Debug-VSCode-Plugin-1.0.0.vsix
- 点开debug侧边工具栏,若未生成launch.json文件,则根据提示点击生成launch.json文件(弹窗中调试器选择MSDebug)
- 在
.vscode/launch.json 中添加调试配置(格式参考下面推荐配置)
- debug侧边工具栏中,选择已配置的调试器,点击
debug 或按F5 启动调试
{
"configurations": [
{
"name": "xx-debug",
"type": "msdebug-mi",
"request": "launch",
"cwd": "${workspaceFolder}",
"target": "${workspaceFolder}/xx_operator",
"targetArgs": [
"arg1",
"arg2"
]
"msdebugMiPath": "/xx/x/msdebug-mi",
"environmentScripts": [
"/xxx/xx/Ascend/ascend-toolkit/set_env.sh"
],
"environment": [{
"name": "LD_LIBRARY_PATH",
"value": "/xx/x/lib:${LD_LIBRARY_PATH}"
}]
}
]
}
name 调试插件的名称
type 固定值"msdebug-mi"
request 固定值"launch"
cwd 调试器启动的工作目录
target (必要配置项)被调试的算子可执行文件的路径
targetArgs 可选配置,被调试的算子可执行文件的参数列表
msdebugMiPath 调试器路径,不配置默认为$ASCEND_TOOLKIT_HOME/tools/msdebug/bin/msdebug-mi
environmentScripts 包含设置调试器的环境变量的脚本数组(脚本每行形如:"export XX_KEY=XX_VALUE" ),依次加载数组中各脚本
environment 包含自定义环境变量的对象数组,在加载完environmentScripts 脚本中的环境变量后依次加载environment 中的环境变量,格式需满足:[{"name": "xxx", "value":"yyy"}]
断点调试(设置/删除/禁用/启用断点)
- 可以在算子程序行号显示处设置、删除、禁用、用断点,也可以在debug侧边工具栏中的底部断点工具栏执行相同操作。
单步执行调试(逐行执行/内部执行/跳出函数)/继续/暂停/重启
- 可以单击顶部调试工具栏上的图标控制程序,包括单步执行、步入、步出、继续、暂停、重启或停止程序的操作。
查看变量/寄存器/堆栈/断点信息,监视器支持执行表达式
- 启动调试后,程序会停止在断点,当进程处于停止状态时,可以在IDE界面左侧查看当前线程的变量、堆栈、监视器和断点信息。其中监视器支持执行表达式。
内存查询
- 调试停在断点时,光标移到代码编辑区的变量上右键并点击Read Memory菜单跳转到内存查看页面,支持切换数据类型和列数改变内存展示效果
- 从右下角的Read Memory菜单项也可以跳转到内存查看页面,支持手动输入内存位置、内存地址、内存大小来进行自定义内存位置的内存查看
核切换
- 支持两种切核方式
- (1)调试算子程序Kernel侧代码时,IDE右下角显示当前调试占用NPU卡的核ID,点击该按钮(形如:
kernel:aiv 10 ),弹窗显示所有可用核ID,根据提示将待切核ID输入弹窗并回车进行切核,输入格式例如aiv 15 或aic 15
- (2)快捷键
Ctrl + Shift + P 调出命令栏输入MSDebug:Change Kernel 也可以调出切核窗口,输入待切核ID进行切核
| |