CANN/cannbot-skills:mssanitizer内存检测使用指南
mssanitizer 内存检测使用指南【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills用于检测 AscendC 算子内核中的内存错误越界读写、非对齐访问、多核踩踏等基于mssanitizer --toolmemcheck。这是ascendc-crash-debugskill 的子功能模块请通过/ascendc-crash-debug触发使用。前置条件NPU 设备可用npu-smi info正常CANN 环境已安装并可用含mssanitizer工具算子代码仓库中包含build.sh编译脚本已有可运行的 ST 测试用例pytest快速开始第 1 步准备配置文件将模板拷贝到你的工作目录并根据实际情况修改cp scripts/memcheck_input.json.template ./memcheck_input.json编辑memcheck_input.json填写你的算子信息{ operator: { name: your_operator_name }, paths: { code_base_dir: /path/to/your/training/ascendc }, testing: { test_script_dir: /path/to/your/.../tests/st, test_script_exe: pytest test_npu_your_operator.py }, environment: { device_type: ascend910b, cann_env: /path/to/cann/latest } }各字段说明字段必填说明operator.name是算子名称paths.code_base_dir是代码仓根目录包含build.shtesting.test_script_dir是ST 测试脚本所在目录绝对路径testing.test_script_exe是测试执行命令如pytest test_npu_xxx.pyenvironment.device_type是NPU 设备类型如ascend910benvironment.cann_env是CANN 环境路径compilation.sanitizer_options否编译选项默认-sanitizer;-gmemcheck.timeout否超时秒数默认600options.rebuild否是否重新编译默认true第 2 步拷贝脚本并执行cp scripts/run_memcheck_pre.sh . chmod x run_memcheck_pre.sh ./run_memcheck_pre.sh脚本会自动完成编译带 sanitizer→ 安装算子包 → 运行 mssanitizer memcheck。第 3 步查看结果输出保存在code_base_dir/memcheck_output/下memcheck_output/ ├── status.txt # 执行状态摘要 ├── build/build.log # 编译日志 ├── install/install.log # 安装日志 └── memcheck/ ├── ascendc_memcheck_report_raw.txt # memcheck 原始报告重点看这个 └── mindstudio_sanitizer_log/ # mssanitizer 详细日志第 4 步让 Claude 分析在 Claude Code 中输入/ascendc-crash-debug并说明需要内存检测Claude 会自动读取 memcheck 报告提取 ERROR 和 WARNING根据调用栈定位源代码分析根因并给出修复建议生成memcheck_detailed_report.md详细报告常用选项# 跳过编译直接用已有产物运行 memcheck ./run_memcheck_pre.sh --skip-build # 指定其他配置文件 ./run_memcheck_pre.sh --config my_config.json # 详细输出 ./run_memcheck_pre.sh --verbose典型使用场景算子运行崩溃、偶发崩溃无法复现怀疑存在越界读写或内存踩踏导致崩溃aic error 或 coredump 堆栈不清晰多核场景下偶发崩溃代码提交前的内存安全检查目录结构ascendc-crash-debug/ ├── scripts/ │ ├── memcheck_input.json.template # 配置文件模板拷贝到工作目录使用 │ └── run_memcheck_pre.sh # 自动化检测脚本 │ └── parse_plog.py # plog 日志解析脚本 └── references/ └── memcheck/ ├── automated_workflow.md # 自动化工作流详细说明 ├── README.md # 本文件 - 用户使用指南 └── mssanitizer_guide.md # msSanitizer 工具原始文档常见问题Q: 脚本报找不到mssanitizer确认 CANN 环境已正确加载source cann_env/bin/setenv.bashQ: 编译失败检查memcheck_output/build/build.log确认code_base_dir路径正确且包含build.sh。Q: memcheck 超时在配置文件中增大memcheck.timeout单位秒大型算子建议设为 1200。【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考