Skip to content

Crash dumps

Mauricio G. edited this page Oct 8, 2026 · 1 revision

Crash dumps

When the app crashes hard (error code C2-12828-1), the Vita writes a .psp2dmp file into ux0:data/. You can turn it into a thread list, registers and a file/line backtrace.

What you need

  • The dump file
  • The debug ELF from the same build that crashed: build/vita/VitaRPS5.elf, produced by ./tools/build.sh debug. Release builds do not carry enough symbol information, and a rebuild overwrites the file, so keep a copy of the ELF with each VPK you hand out.
  • Docker (the parser runs inside the build image)

Steps

  1. Copy the .psp2dmp (named like psp2core-<number>.psp2dmp) from ux0:data/ on the Vita to your computer (VitaShell FTP or USB).
  2. From the repo root run:
./tools/parse_dump.sh path/to/psp2core-xxxx.psp2dmp [path/to/VitaRPS5.elf]

If you leave out the ELF path, build/vita/VitaRPS5.elf is used. Relative paths are taken from the repo root, and both files must be inside the repo folder (the script mounts it into the container).

The parser (scripts/vita/parse_core/main.py, part of the repo; no submodule step) prints the threads, stop reason, registers and a backtrace.

Manual way

./tools/build.sh shell
python3 scripts/vita/parse_core/main.py /build/git/<dump> /build/git/build/vita/VitaRPS5.elf

When you report a crash

Attach the dump, the log (see Logging) and the [PIPE/BUILD] line from it, or the VPK name, so the matching ELF can be found.

Clone this wiki locally