Merged
Conversation
- make SerializableThreadContext and SerializableEmu arch-aware - route minidump import through current-thread helpers - add a serialization roadmap for the remaining native/minidump work Co-Authored-By: OpenAI Codex <codex@openai.com>
Complete the serialization roadmap for AArch64 architecture parity: - Fix native serialization stack overflow by running tests with large thread stacks (same pattern as the existing should_serialize test) - Replace placeholder test_serialization_module_exists with real x86_64 native roundtrip test - Unignore test_aarch64_native_serialization_fixture_roundtrip - Implement ARM64 minidump import: parse MinidumpRawContext::Arm64 and OldArm64, map register state into RegsAarch64, build architecture- aware SerializableEmu via new default_for_arch() and set_regs_aarch64() - Fix is_pe64 to recognize ARM64 PE machine type (0xAA64) - Fix is_64bits to include Arm64 CPU type - Implement ARM64 minidump export: emit CONTEXT_ARM64 blob (912 bytes) with NZCV flags, x0-x30, sp, pc, NEON V0-V31, fpcr/fpsr - Refactor build_thread_context to use ThreadContextInput enum - Refactor stack_location_for_thread to accept sp directly - Remove architecture guards blocking AArch64 in writer - Add test_aarch64_minidump_roundtrip with register, NZCV, and SIMD state verification - Unignore test_aarch64_minidump_fixture_roundtrip - All 231 tests pass with 0 failures Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Emu::new(arch) now initializes ArchState, ThreadContext, and Maps.is_64bits correctly at construction time, eliminating the window where cfg.arch disagrees with the actual thread state. Factory functions (emu32/emu64/ emu_aarch64) simplified to one-liners. This exposed a latent bug: the 64-bit allocator places maps above 4 GB but the exception handler context pointer (eh_ctx) was stored as u32, causing a panic. Widened eh_ctx to u64 across ThreadContext, serialization structs, and exception handler enter/exit paths. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Also replace all hardcoded relative paths in tests with helpers::win32_maps_folder(), helpers::win64_maps_folder(), and helpers::test_data_path() so tests pass regardless of working directory (fixes CI failure on Windows runner). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
part of #114