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编码。
development
Run local code quality checks covering a subset of OpenHarmony gate CI (copyright, CodeArts C/C++) plus additional local checks (pylint/flake8, shellcheck/bashate, gn format). Use before committing to reduce gate failures. Triggers on: /oh-precommit-codecheck, "门禁检查", "门禁预检", "检查代码", "run codecheck", "check code quality", "lint my code", "代码检查", or after completing code implementation. WHEN to use: before git commit, before creating PR, after modifying C/C++/Python/Shell/GN files, when gate CI fails with codecheck defects, or when you want to preview what gate will flag.
development
OpenHarmony PR full lifecycle workflow. Five modes: - Commit: standardized commit with DCO sign-off and Issue linking - Create PR: commit + push to fork + create Issue + create PR on upstream - Fix Codecheck: fetch gate CI codecheck defects from a PR and auto-fix them - Review PR: fetch a PR's changes to local for code review - Fix Review: fetch unresolved review comments from a PR and auto-fix them Triggers on: /oh-pr-workflow, "提交代码", "创建PR", "提个PR", "commit", "修复告警", "修复门禁", "修复codecheck", "fix codecheck", "review pr", "review这个pr", "看下这个pr", "检视pr", "修复review", "修复检视意见", "fix review", or a GitCode PR URL with fix/review intent.
testing
分析 HM Desktop PRD 文档,提取需求信息、验证完整性、检查章节顺序(需求来源→需求背景→需求价值分析→竞品分析→需求描述)、检查 KEP 定义、检测需求冲突并生成结构化分析报告。适用于用户请求:(1) 分析或审查 PRD 文档, (2) 从需求中提取 KEP 列表, (3) 检查 PRD 完整性或一致性, (4) 将需求映射到模块架构, (5) 验证 PRD 格式合规性, (6) 验证竞品分析章节完整性。关键词:PRD分析, requirement extraction, KEP验证, completeness check, chapter order validation, 竞品分析检查, analyze PRD, 需求提取, 完整性检查, 章节顺序验证
development
基于 PRD 文档自动生成鸿蒙系统设计文档,包括架构设计文档和功能设计文档。生成前会分析 OpenHarmony 存量代码结构,确保与现有架构兼容。架构设计文档第2章必须为竞品方案分析,位于需求背景之后。适用于用户请求:(1) 生成架构设计文档, (2) 生成功能设计文档, (3) 从 PRD 生成设计文档, (4) 创建系统架构设计, (5) 编写功能规格说明, (6) 分析 OH 代码结构。关键词:architecture design, functional design, design doc, 竞品方案分析, OpenHarmony code analysis, 架构设计, 功能设计, 设计文档生成, OH代码分析, analyze codebase, competitor analysis