Repository navigation
Conversation
…odule-unwind-forwarding
…odule-unwind-forwarding
Collaborator
|
Closing: no title is known to reach this. With the queue at 700+ open PRs, please hold off on new PRs that don't name a title needing the change until it's down. If a title stops on this on current main, reopen with the title ID and the log line. |
8 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
sceSysmoduleGetModuleInfoForUnwind duplicates a mapping-only query and always returns zero exception-table fields. A caller therefore loses unwind metadata that sceKernelGetModuleInfoForUnwind already finds for the same address. The wrapper also dereferences null output pointers and throws for an unmapped address instead of returning the kernel error.
Forward the query to the kernel implementation and link libSceSysmodule to libkernel. Remove the duplicate platform mapping code. The wrapper preserves the kernel's tables, segment information and errors, as the equivalent wrapper in shadPS4 does. Console equivalence remains unmeasured.
Tested
The new sysmodule/kernel comparison fails before the production change. After forwarding, the Linux main executable has matching nonzero EH-frame header, frame address and frame size. Existing executable, library, stack and anonymous mapping cases compare against the kernel result. Null output returns EFAULT; an unmapped Linux address returns ESRCH without changing a sentinel output field. Both normal and proc-mapping fallback sysmodule tests pass.
Full bundled Linux Release integration build passes using 32 build threads; five checks pass without skips: guest_sysmodule, guest_sysmodule_maps_scan, guest_module_info, guest_dynamic_loader and patched_libraries. Integration commit 7d09dbc, based on upstream 056d17e plus other development changes. Local topic and integration conventions pass.
The production change and regression match the tested integration. Subsequent full CI validates the independent topic on Linux and Windows, including the kernel/sysmodule parity and null-output checks. Native macOS library validation has not been done. Kernel platform limits remain, including metadata unavailable for some host images. No new guest exports, title progression or confirmed game exception recovery are claimed.
This review PR is in the JJenkx fork because the upstream author allowance is occupied by #4474. Its base is the existing fork main at 1acfa7f; the updated development integration is tested separately.
Full CI run 38326711983 passed at this exact topic head 4866f60. Linux: 936 passed and 43 skipped (979 total); Windows: 638 passed and 357 skipped (995 total). guest_sysmodule passed on both, and guest_sysmodule_maps_scan passed on Linux. All relinker platform, register-context and write-watch jobs passed. GitHub conventions passed.
Checklist
Current upstream validation
Published head
b09a7536f5d6d468ca67570221a4ccb0dcaad137contains current maind1670009fbfdfe57f8f26ee09ced77fe6b18c2caand merges without conflicts. Conventions and whitespace checks pass. The topic's production change is unchanged by this main refresh. Previous validated build passes at2301b938c3b36ee05ae8dae521dba557c1a363b0against main7a0c838ca48; any reused Linux results apply to their explicitly recorded earlier head/base. Latest-main full Linux and Windows validation passes for this published head; expected skips remain unvalidated.