Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion default/agents/skills/diagnose-crash/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ trap 'rm -f "$core"' EXIT
coredumpctl dump <pid> --output="$core"
DEBUGINFOD_URLS="https://debuginfod.archlinux.org" \
gdb -q <executable> "$core" \
-batch -ex 'set debuginfod enabled on' -ex 'bt'
-batch -iex 'set debuginfod enabled on' -ex 'bt'
```

A core is a verbatim copy of the process's memory and can hold passwords, tokens,
Expand Down
7 changes: 7 additions & 0 deletions test/shell.d/crash-capture-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,13 @@ grep -Fq 'omarchy-crash-mute' "$skill" ||
fail "the diagnosis no longer names the command that mutes, so the offer it makes cannot be carried out"
pass "the diagnosis names the command that mutes"

# gdb decides on debuginfod during startup, before -ex commands run, and never
# retries the executable lookup; only -iex enables it in time, so -ex leaves
# the crashed program's own frames unsymbolized while libraries still resolve.
grep -Fq -- "-iex 'set debuginfod enabled on'" "$skill" ||
fail "the diagnosis enables debuginfod with -ex, which runs after gdb's startup lookup and leaves the crashed executable unsymbolized"
pass "the diagnosis enables debuginfod before gdb's startup lookup"

grep -Fq 'GROUP_DESCRIPTIONS[crash]' "$ROOT/bin/omarchy" ||
fail "the crash group has no description, so the router lists a group it cannot describe"
pass "the crash group is described in the router"
Expand Down