# AUDIT-030 canary-side TRACE-PC-LR captures # Build: xenia-canary (Debug Linux x86_64), 30-LOC patch reverted post-session. # Patch: src/xenia/cpu/{cpu_flags.{cc,h},backend/x64/x64_emitter.cc,ppc/ppc_hir_builder.cc}. # Mechanism: --log_lr_on_pc=N emits HIR Trap(100) on each PC=N exec; trap calls # host TrapLogLR(raw_ctx) which XELOGI's PPCContext.lr + r3..r6, r31. # ---- Run A: --log_lr_on_pc=0x824D2C08 (sub_824D2C08, audio init) ---- # Wall: 22 s, --disable_instruction_infocache=true, --log_level=3. # 1 emit message, 1 capture (entry hit during audio init): i> F8000008 AUDIT-030 emit log-lr trap at HIR pc=824D2C08 i> F8000008 TRACE-PC-LR pc=824D2C08 lr=824D3054 r3=BE628EDC r4=701CF4D0 r5=00000010 r6=00000018 r31=00000000 # Reading: caller is sub_824D2D14-area at lr=0x824D3054. r3 is host pointer # (0xBE62...) into audio_system v80 memory. r4..r6 are init args. # ---- Run B: --log_lr_on_pc=0x824D23B0 (sub_824D23B0, alleged per-frame entry) ---- # Wall: 2+ minutes (multiple attempts), --disable_instruction_infocache=true. # 0 emit messages, 0 captures EVER, even after 21,399 KeReleaseSemaphore(0x828A3230) # calls + VdSwap=1 in the *first* 2-min run (audio worker active, frame rendered). # Second 2-min run got stuck at boot due to slow JIT warm-up post-rebuild # (1190-1240 lines log only). 5-min run also stuck. # 0/N captures => sub_824D23B0 (PC 0x824D23B0..0x824D2877) is NEVER ENTERED in canary # during the title-menu loop. # ---- Verification: --break_on_instruction=0x824D2C08 ---- # SIGTRAP (exit 133) at audio init => break-on-instruction mechanism is live. # ---- Verification: --break_on_instruction=0x824D23B0 ---- # Process ALIVE for 25 s with audio worker firing => no SIGTRAP => # sub_824D23B0 entry not reached, consistent with Run B.