Repository navigation
feat(libkernel): implement coredump user data calls - #4197
Conversation
6577699 to
039fbed
Compare
|
Independent verification of your rebase — the new head builds and passes the full local suite on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release, |
039fbed to
2ded60f
Compare
2ded60f to
7fc689f
Compare
|
Thanks for independently verifying the rebased head. The full Linux suite result (960/960) and conventions check are useful confirmation. |
|
Windows test of head
Not checked: that the test fails without the change, Linux, a title run. AI-assisted (Claude Code). |
sceCoredumpWriteUserData (Dbbkj6YHWdo) and sceCoredumpDebugTextOut
(dei8oUx6DbU) get the signatures of Orbital's db_types.json (cc408367)
and SharpProspero's KernelSystem.cs (5dfdb4b0): ssize_t (const void*,
size_t) and void (const char*, int). WriteUserData moves out of
Unimplemented.cpp.
User data belongs to the core dump handler: the Vita's
sceCoredumpWriteUserData returns 0x800A0003 ("No user-data capture is
active") outside it (vita-headers e66ebe90), and the RED engine's PS4
crash handler makes every coredump call from its handler (Vangaurd
4f86d2b0). The handler is never invoked here, so WriteUserData returns
SCE_COREDUMP_ERROR_NOT_IN_COREDUMP_HANDLER (0x81180003, shadPS4
coredump_error.h e0a46675) sign-extended and keeps nothing; a null,
empty or wrapping buffer throws because the order of the console's
checks is unknown. DebugTextOut prints its text to stderr with the
[coredump] prefix; a negative length or a null text with a nonzero
length throws.
Evidence: Broken Sword Reforged (PPSA21480) reaches the family through
its sibling, boykopovar#3704 comment 6113687542: "`ERROR agc_graphics.cpp:266
Sony call failed with code 8a6c9018` (the resource registration error,
followed by the error dialog), then `sceCoredumpWriteUserString not
implemented`." WriteUserString has no declaration in any source and
keeps throwing; its TechnicalDebt entry records the call. 007 First
Light (PPSA11386) imports WriteUserData (boykopovar#2523) without calling it
before its stop.
Test: guest_coredump_user_data.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
7fc689f to
c8379be
Compare
|
Rebased onto current Linux validation (GCC 12.2, Release, Ninja, The focused Linux tests passed; I did not run a Windows build. Updated head: |
What
Carries only screamm’s first ready commit from #4144, preserving its original author. Implements
sceCoredumpWriteUserDataandsceCoredumpDebugTextOut: because the core dump handler is not invoked in this runtime,WriteUserDatareturns the not-in-handler error and stores no data, while debug text is written to stderr with the existing coredump prefix.The signatures come from Orbital and SharpProspero; the outside-handler rule is supported by Vita documentation. Error
0x81180003is shadPS4’s PS4 numbering and is unverified on PS5; that uncertainty is recorded in TechnicalDebt.sceCoredumpWriteUserStringand the other undocumented calls remain throwing stubs.Coordination: open #3821 implements the separate attach calls. It shares the error constant and region-validation helper in
Coredump.cpp; this PR does not implement those attach calls. The changes are independent, but a small textual rebase may be needed if #3821 lands first.Tested
BUILD_TESTING=ON, andANYPS5_ENABLE_SPIRV_TOOLS=ONcompleted.guest_coredump_user_data_testswith Ninja (62/62 steps).ctest --test-dir /tmp/AnyPS5-4173-build -R '^guest_coredump_user_data$' --output-on-failure --timeout 60passed (1/1).python3 tools/check_conventions.py --base upstream/main --head HEADpassed.git diff --checkpassed.Checklist
main; no other open PR implements these callsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository