crash-triage

Diagnose and symbolize fatal signal crashes of a native app on LG webOS televisions.

39|7|Updated Jul 3, 2026
One-click install
npx skills add https://github.com/GLinnik21/plx-native --skill crash-triage-glinnik21
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: crash-triage
Source: https://github.com/GLinnik21/plx-native/tree/main/.agents/skills/crash-triage
Command: npx skills add https://github.com/GLinnik21/plx-native --skill crash-triage-glinnik21

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When a native app dies on an LG webOS TV — a SIGSEGV, a black screen, or a silent vanish mid-run — the raw crash tracer output is just a program counter and registers. This Skill turns that into an actionable diagnosis: it symbolizes the faulting PC to a function or file:line, routes by signal type to the right evidence, and rules out the impostors (sleeping TV, stale deployed binary, SAM's stale running state) that look like crashes but are not. ## Core Features & Use Cases - Automated evidence collection: Runs tools/crash-report.sh to gather the crash block, stderr, SAM exit status, and crash-daemon reports, then symbolizes pc/lr against the deployed binary. - Signal-based routing: Directs SIGSEGV/SIGBUS to ABI offset verification, SIGILL to codegen checks (CP15 barrier count, CPU arch tag), and SIGABRT/SIGTRAP to the Rust panic stderr log. - Impostor elimination: Verifies the TV is awake, the deployed binary md5 matches the build, and the correct install flavor (stable, debug, nightly) is being triaged before trusting any crash data. - Use Case: A harness case fails with "no line found" after the app vanished. Use this Skill to confirm the TV was awake, identify which of the three installs crashed, symbolize the fault event, and determine whether the PC landed in your binary or a TV shared library. ## Quick Start Ask the assistant to triage the most recent crash on the TV using the crash-triage skill and symbolize where it faulted.

Frequently Asked Questions about crash-triage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I symbolize a crash program counter on an embedded ARM device?

Subtract the binary's load base (from the bin: maps line) from the faulting PC, then feed the result to addr2line. The crash-report.sh driver automates this, resolving function names on release builds and file:line when rebuilt with DEBUG=1.

How do I diagnose a SIGSEGV crash on an LG webOS TV?

Run tools/crash-report.sh to collect the crash block, stderr, and SAM exit status, then symbolize the PC. If the fault is inside a TV shared library, treat it as an ABI or argument bug on the call path into that library.

Why is my crash log empty even though the app died?

An empty crash log means either nothing crashed or the recorder is broken. Check the SAM exit status for WIFSIGNALED, and prove the tracer works by triggering a deliberate segv via the plxnative-crashtest file and verifying the record end to end.

Why does every log assertion fail with no line found on the TV?

A sleeping TV makes every log assertion fail this way, which reads like a total regression. Wake the television first and re-run before triaging anything as a crash.

Can I get a crashd backtrace or core dump from webOS?

No. core_pattern is the bare string core and RLIMIT_CORE is 0, so no core is written and /var/log/reports/librdx/ stays empty by construction. The local fault event or the Sentry Native handler envelope is the available evidence.

What does a SIGILL crash indicate on this ARM television?

SIGILL usually indicates a codegen problem, not a logic bug. The default ARMv6 codegen emits a CP15 barrier undefined on this SoC; check that the CP15 instruction count is 0 and the CPU arch tag is v7.