Skip to content

ps2client: Add offline EE/IOP exception log symbolization - #31

Merged
fjtrujy merged 1 commit into
masterfrom
feature/exception-symbolization
Oct 31, 2026
Merged

fjtrujy merged 1 commit into
masterfrom
feature/exception-symbolization

Conversation

@fjtrujy

@fjtrujy fjtrujy commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add a native C EE/IOP exception-log symbolizer (tools/ps2symbolize.c).
  • Parse EE EPCs and IOP module-relative EPCs, then invoke the relevant PS2 addr2line executable via posix_spawnp using an argument array, never a shell.
  • Preserve the original console text and annotate resolved addresses with source locations from matching unstripped ELF files.
  • Support streaming standard input, log files, multiple IOP module mappings, and configurable addr2line tools.
  • Add C parser regression tests (tests/test_symbolize.c) and usage documentation.
  • Build with make all, install with make install on POSIX hosts, and test via make check.

Plain C / compatibility

  • Based directly on master (which already includes merged PR ps2client: Migrate Python test tooling to plain C #32).
  • Exactly one C-only commit; no Python code or runtime dependency.
  • No PS2-side changes, wire-protocol changes, or new runtime libraries.
  • The optional symbolizer is currently a POSIX host tool for macOS/Linux; existing Windows ps2client/fsclient builds remain unaffected.

Validation

  • make all check: passed on macOS (five C smoke checks and native C EE/IOP symbolization tests).
  • Verified make install stages the native ps2symbolize binary and ps2symbolize --help runs.
  • git diff --check: passed.
  • Address-to-source accuracy requires debug symbols from the exact ELF being diagnosed.

@fjtrujy
fjtrujy force-pushed the feature/exception-symbolization branch from e021a90 to 7d4be99 Compare October 31, 2026 14:43
@fjtrujy
fjtrujy changed the base branch from master to test/plain-c-infrastructure October 31, 2026 14:43
@fjtrujy
fjtrujy force-pushed the test/plain-c-infrastructure branch from 65c91f8 to ffb9919 Compare October 31, 2026 14:45
@fjtrujy
fjtrujy force-pushed the feature/exception-symbolization branch from 7d4be99 to f3e29f4 Compare October 31, 2026 14:45
@fjtrujy
fjtrujy force-pushed the test/plain-c-infrastructure branch from ffb9919 to fad5fd3 Compare October 31, 2026 14:46
@fjtrujy
fjtrujy force-pushed the feature/exception-symbolization branch from f3e29f4 to 67b270c Compare October 31, 2026 14:46
Annotate PS2Link exception logs with addr2line results using a shell-free C subprocess runner. Include C parser tests, documentation, and make all/install integration for macOS/Linux. No Python runtime or source is required.
@fjtrujy
fjtrujy force-pushed the feature/exception-symbolization branch from 67b270c to 48f3465 Compare October 31, 2026 15:06
@fjtrujy
fjtrujy changed the base branch from test/plain-c-infrastructure to master October 31, 2026 15:06
@fjtrujy
fjtrujy merged commit b325f43 into master Oct 31, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant