skills/ohos-issue-graphics-cppcrash-analysis/SKILL.md
Use when analyzing OpenHarmony cppcrash faultlogs to locate root cause of native process crashes, investigating SIGSEGV/SIGABRT signals, memory corruption patterns, or call stack anomalies.
npx skillsauth add openharmonyinsight/openharmony-skills ohos-issue-graphics-cppcrash-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
分析OpenHarmony系统图形模块相关cppcrash日志文件,定位进程崩溃的根本原因。
code/目录下的相关源码lib.unstripped/目录下的带符号表so文件崩溃类型是什么? → 决定优先分析路径
地址模式有何特征? → 决定是否需要深度数据流追踪
0x6b6b...开头 → 必须做Use-After-Free分析是否有多线程上下文? → 决定是否需要竞争分析
Other thread info → 必须检查锁竞争和竞态条件按以下顺序检查:
lib.unstripped/目录是否存在code/目录是否存在若缺失必要输入,终止并报告用户。
从cppcrash头部读取Reason:
0x6b6b开头:Use-After-Free解栈前必须验证so的buildId与cppcrash中一致,否则终止。
根据崩溃类型选择分析路径:
| 崩溃类型 | 优先路径 | 原因 |
|----------|----------|------|
| SIGSEGV + 0x6b6b地址 | 解栈 → 数据流追踪 → 地址匹配 | Use-After-Free需追溯释放点 |
| SIGSEGV + 高位字节异常 | 解栈 → 地址匹配 → 内存分析 | 踩内存需定位踩踏源 |
| SIGABRT + abort/raise | 解栈 → 业务代码分析 | 主动退出需理解退出原因 |
| 包含cfi_slowpath_comm | 优先踩内存分析路径 | CFI失败指示内存破坏 |
完整流程如下(按需要执行):
references/stack-unwinding.mdreferences/disassembly-analysis.mdreferences/memory-pattern-analysis.mdreferences/call-chain-backtrace.mdreferences/thread-competition-analysis.mdreferences/memory-data-analysis.mdreferences/special-cases.mdreferences/report-template.md0x6b6b...开头 → Use-After-Free(已释放内存被访问)查看Other thread info:
详见 references/code-review-checklist.md,重点检查:
常见错误做法:
原因:会导致错误的修复方向,浪费调试时间。
常见错误做法:
原因:会导致错误的代码行号定位。
常见错误做法:
原因:多线程问题是图形模块崩溃的常见根因。
常见错误做法:
原因:地址模式匹配是识别内存踩踏的关键手段。
cfi_slowpath_comm → 优先按踩内存问题分析按以下条件读取对应文件:
| 条件 | 文件 | 注意 |
|------|------|------|
| 执行解栈步骤时 | references/stack-unwinding.md | 仅解栈时加载 |
| 执行反汇编分析时 | references/disassembly-analysis.md | 仅需确认崩溃指令时加载 |
| 执行调用链回溯分析时 | references/call-chain-backtrace.md | 仅追溯参数来源时加载 |
| 执行数据流追踪或地址模式匹配时 | references/memory-pattern-analysis.md | 仅地址异常时加载 |
| 执行多线程竞争分析时 | references/thread-competition-analysis.md | 仅有多线程上下文时加载 |
| 执行内存数据分析时 | references/memory-data-analysis.md | 仅需分析内存dump时加载 |
| 判断特殊情况时 | references/special-cases.md | 仅调用栈特征匹配时加载 |
| 排查代码问题时 | references/code-review-checklist.md | 仅定位到代码后加载 |
| 生成分析报告时 | references/report-template.md | 仅最后生成报告时加载 |
Do NOT Load: 不要在分析开始时一次性加载所有references文件,按需加载以节省上下文空间。
用户提供了相关源码在code/目录。
用户提供了相关带符号表信息的so在lib.unstripped/目录。
用户环境提供llvm工具(llvm-readelf/llvm-addr2line/llvm-objdump等)。
分析时使用中文交互,涉及文件均为UTF-8编码。
testing
--- name: ohos-req-value-decision description: Use after review meeting to record decision and route to next step. Triggers: 评审决策纪要, 评审结论回流, value decision, 评审接纳, 评审不接纳, 评审退回, 下次重新上会. Do NOT use for feature baseline (ohos-req-feature-baseline), review gate checks (ohos-req-review-gate), or IR generation (ohos-req-feature-to-ir). metadata: author: openharmony scope: common stage: requirements capability: value-decision version: 0.3.0 status: draft tags: - sdd - requirements
development
Use when converting an OpenHarmony requirement document, spec, or design proposal into an OpenHarmony review slide deck (需求评审 / 需求变更评审 / 设计评审 PPTX) — produces the fixed OpenHarmony-branded review-deck structure (OH logo on every page) with architecture/flow diagrams and field tables. Triggers on "需求评审PPT", "需求变更评审", "把需求文档转成评审PPT", "spec转评审PPT", "requirement/spec to review deck". NOT for arbitrary or generic slide decks unrelated to OpenHarmony requirement/design review.
testing
Use when performing the Phase 0 Step 0.5 Review Ready Gate on a 04-feature.md, especially when the user says "evaluate gate", "review readiness", "feature ready?", "should we generate IR", or when the ohos-req-intake-orchestration main session needs a structured Ready / Conditional Ready / Not Ready judgment instead of doing the check inline. Reads 01-04, runs seven fixed checks plus a conditional-items check, and returns a machine-readable JSON summary plus a human-readable table that the main session can route on. Do NOT use for feature baseline generation (ohos-req-feature-baseline), value decision recording (ohos-req-value-decision), or IR generation (ohos-req-feature-to-ir).
testing
--- name: ohos-req-requirement-intake description: Use when importing an OHOS requirement into Phase 0.1, especially for 01-requirement.md, requirement intake, background, user value, scenarios, scope, FR/NFR, affected modules, or priority. Triggers: 需求导入, 01-requirement, 需求基线, RR单号. Do NOT use for feasibility analysis (ohos-req-feasibility-analysis), architecture decision (ohos-req-arch-decision), or feature baseline (ohos-req-feature-baseline). metadata: author: openharmony scope: common