1개월 전 · Jul 5, 2026 12:14 AM
Why mixing Windows and Linux object files causes immediate stack corruption:
- System V AMD64 ABI (Linux / macOS):
- First 6 integer/pointer arguments passed in:
RDI, RSI, RDX, RCX, R8, R9. - Return value in
RAX(andRDXfor 128-bit). - 128-byte Red Zone below
RSPthat signal handlers won't clobber!
- First 6 integer/pointer arguments passed in:
- Microsoft x64 ABI (Windows):
- First 4 arguments passed in:
RCX, RDX, R8, R9. - Mandatory 32-byte Shadow Space (Home Space) allocated by caller on stack above return address!
- No Red Zone allowed.
- First 4 arguments passed in: