mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
[NTOS:KE] Generate proper frame info for trap handler in GCC builds
CORE-8531
This commit is contained in:
parent
6c100a13c2
commit
4e4c47cccc
2 changed files with 25 additions and 0 deletions
|
@ -217,6 +217,29 @@ set_sane_segs:
|
|||
mov [esp + KTRAP_FRAME_DEBUGEIP], eax
|
||||
mov [esp + KTRAP_FRAME_DEBUGEBP], ebp
|
||||
mov ebp, esp
|
||||
|
||||
/* Tell GDB what just happened */
|
||||
CFI_DEF_CFA_REGISTER ebp
|
||||
CFI_ADJUST_CFA_OFFSET FrameSize
|
||||
CFI_REL_OFFSET ss, KTRAP_FRAME_SS
|
||||
CFI_REL_OFFSET gs, KTRAP_FRAME_GS
|
||||
CFI_REL_OFFSET fs, KTRAP_FRAME_FS
|
||||
CFI_REL_OFFSET es, KTRAP_FRAME_ES
|
||||
CFI_REL_OFFSET ds, KTRAP_FRAME_DS
|
||||
CFI_REL_OFFSET cs, KTRAP_FRAME_CS
|
||||
|
||||
CFI_REL_OFFSET edi, KTRAP_FRAME_EDI
|
||||
CFI_REL_OFFSET esi, KTRAP_FRAME_ESI
|
||||
CFI_REL_OFFSET ebx, KTRAP_FRAME_EBX
|
||||
CFI_REL_OFFSET ebp, KTRAP_FRAME_EBP
|
||||
CFI_REL_OFFSET eip, KTRAP_FRAME_EIP
|
||||
CFI_REL_OFFSET esp, KTRAP_FRAME_ESP
|
||||
|
||||
if (NOT (Flags AND KI_NONVOLATILES_ONLY))
|
||||
CFI_REL_OFFSET eax, KTRAP_FRAME_EAX
|
||||
CFI_REL_OFFSET ecx, KTRAP_FRAME_ECX
|
||||
CFI_REL_OFFSET edx, KTRAP_FRAME_EDX
|
||||
endif
|
||||
#endif
|
||||
|
||||
/* Set parameter 1 (ECX) to point to the frame */
|
||||
|
|
|
@ -125,6 +125,7 @@ ALIGN 4
|
|||
EXTERN @KiInterruptTemplateHandler@8:PROC
|
||||
PUBLIC _KiInterruptTemplate
|
||||
_KiInterruptTemplate:
|
||||
CFI_STARTPROC
|
||||
KiEnterTrap KI_PUSH_FAKE_ERROR_CODE
|
||||
PUBLIC _KiInterruptTemplate2ndDispatch
|
||||
_KiInterruptTemplate2ndDispatch:
|
||||
|
@ -135,6 +136,7 @@ _KiInterruptTemplateObject:
|
|||
jmp eax
|
||||
PUBLIC _KiInterruptTemplateDispatch
|
||||
_KiInterruptTemplateDispatch:
|
||||
CFI_ENDPROC
|
||||
|
||||
EXTERN @KiSystemServiceHandler@8:PROC
|
||||
PUBLIC _KiSystemService
|
||||
|
|
Loading…
Reference in a new issue