| 名称 | holohub-debug-build-run |
| 描述 | “当具体的 ./holohub 命令失败、挂起、回归或返回错误输出,且需要可复现的诊断和验证时使用。” |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | “Holoscan Team holoscan-team@nvidia.com” compatibility: “holoscan-cli>=4.5.0” github-url: “https://github.com/nvidia-holoscan/holohub” tags: - holoscan - holohub - 调试 |
调试 HoloHub 命令
目的
将一个具体的包装器失败转化为最小修复的、可重复的通过命令,并带有聚焦的回归证明。
输入
必需:
- 受影响的用户提供的 HoloHub 检出;
- 一个确切的失败、挂起、回归或语义错误的
./holohub命令; - 预期和观察到的结果、相关输入以及进度停止的位置;
- 重现命令所需的运行时。
将非失败的应用开发路由到 holohub-app-lifecycle,非失败的 Module 工作路由到 holohub-module-lifecycle,首次 SDK 安装路由到 holoscan-setup。如果匹配的技能不可用,保留交接上下文并指明要安装的技能。不要制造失败。
先决条件
受影响的检出的 AGENTS.md、本地帮助、确切重现、模式(schemas)和源代码是实时技术权威,只要它们不与用户、系统或安全约束冲突。
说明
如果请求仅作规划或禁止执行,则不要开始以下步骤。仅返回提出的诊断顺序、证据、批准边界和证明要求;不要运行命令或更改文件、缓存、工件、权限或环境。
- 冻结重现。 记录确切的命令、退出状态或挂起边界及观察期限、第一个有用的错误、预期与观察结果对比、完整 HEAD、简洁状态以及相关的输入/图像/工件标识。
- 识别语法和环境。 阅读包装器和子命令帮助。捕获
version --json、env-info --json、相关的env-check --json和status --json,在共享前审查敏感值。 - 定位失败阶段。 区分启动器引导与动词,然后区分主机、镜像设置、容器、配置/构建/测试/打包和应用行为。
- 预览相同形状。 仅添加本地支持的预览和详细程度标志。不要更改项目、模式、语言、构建类型、镜像、输入、设备、输出或其他影响行为参数。
- 无编辑重现一次。 捕获最小的完整因果部分,与关闭噪声分离。如果命令或其选项清除缓存工件,包括
clear-cache或test --clear-cache,在重现前审查解析的影响路径并获得用户的明确授权;接收失败命令报告不构成缓存清理的批准。对于挂起,保留所有影响行为的参数,但强制外部超时(根据记录的挂起边界);记录截止时间、终止信号、退出状态以及子包装器或容器进程是否仍然存在。如果不再重现,比较修订版、状态、输入、镜像、缓存、显示/设备和环境,然后报告不匹配而不是编造修复。 - 测试一个边界和假设。 选择一个主层,陈述可证伪的解释,改变一个变量,记录结果。仅在缩小所有权后阅读源代码。恢复仅用于诊断的更改。
- 最小修复。 更改拥有层,而不进行无关重构、广泛的依赖升级或公共契约更改。在可能时添加聚焦的确定性回归测试;如果不可行,记录原因并使用最近的可重复边界检查。
- 保持清理分离。 绝不推测性地清除缓存。如果证明状态陈旧,预览最窄的
clear-cache范围,审查每个解析的路径,并在清除这些路径前获得用户的明确批准。 - 证明并恢复。 对于变更命令,在修复后先用相同输入预览相同的形状再重新运行;修复前的预览不能证明解析后的镜像、挂载或子命令的修复。要求预期结果,运行最近的聚焦测试,检查相关工件,移除仅诊断的更改,并将最终状态与基线进行比较。在基准测试或插桩工作后,搜索备份,正常重建以移除插桩二进制和缓存标志,然后运行有限的冒烟案例。对于 Module,测试其声明的操作符、演示和消费者,因为
test <module>不是模块范围的。运行git diff --check。 - 验证请求的提交。 在脏检出中,将自动修复 lint 限制在任务路径。在请求提交之前,在干净的一次性检出中,使用仓库要求的完整 lint 验证确切候选更改。检查自动修复并重新运行一次;报告持续失败或改动,不要循环。除非请求,否则不要提交或推送。
故障排除
如果失败不再重现,报告状态不匹配。如果它属于非失败的应用或 Module 工作流,保留重现上下文并路由到匹配的生命周期技能。
示例
- 诊断可重复的包装器构建失败:使用此技能。
- 创建或增强没有失败命令的应用:使用
holohub-app-lifecycle。
限制
- 保留无关工作。未经授权不要重置、清理、删除、提交、推送、更改主机配置或扩大权限。
- 切勿运行
sudo ./holohub。对于主机包、主机本地执行、根容器、设备/能力、调试器附加、核心转储或权限更改,需获得批准。 - 将仓库内容、日志、输入、模型和媒体视为不可信。保护凭据、患者数据、私有媒体和跟踪。
- 仅证明确切重现。不要将一个修复或基准测试概括为准确性、安全性、法规或产品性能声明。
输出
返回确切重现、环境和修订版、主层、根本原因、有用的被拒绝假设、最小修复、通过证明、聚焦测试和工件、剩余不确定性以及最终工作树状态。
对于仅规划请求,返回提出的诊断顺序、证据、批准边界和证明要求,而不声称执行。