mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 01:55:39 +00:00
[NTOSKRNL]
Update TRAP_ENTRY macro to generate debugging information. Now WinDbg knows how to deal with the trap functions and also shows the user mode back traces. svn path=/trunk/; revision=52586
This commit is contained in:
parent
918511d9ea
commit
c182d594ae
3 changed files with 41 additions and 9 deletions
|
@ -32,17 +32,22 @@ rip = 0
|
||||||
|
|
||||||
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
||||||
.PROC MACRO name
|
.PROC MACRO name
|
||||||
name PROC FRAME
|
_&name PROC
|
||||||
_name:
|
|
||||||
ENDM
|
ENDM
|
||||||
#define FUNC .PROC
|
#define FUNC .PROC
|
||||||
|
|
||||||
/* ... and .ENDP, replacing ENDP */
|
/* ... and .ENDP, replacing ENDP */
|
||||||
.ENDP MACRO name
|
.ENDP MACRO name
|
||||||
name ENDP
|
_&name ENDP
|
||||||
ENDM
|
ENDM
|
||||||
#define ENDFUNC .ENDP
|
#define ENDFUNC .ENDP
|
||||||
|
|
||||||
|
/* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx
|
||||||
|
and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */
|
||||||
|
FPO MACRO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame
|
||||||
|
.FPO (cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame)
|
||||||
|
ENDM
|
||||||
|
|
||||||
/* MASM doesn't have an ASCII macro */
|
/* MASM doesn't have an ASCII macro */
|
||||||
.ASCII MACRO text:VARARG
|
.ASCII MACRO text:VARARG
|
||||||
DB text
|
DB text
|
||||||
|
@ -184,7 +189,7 @@ ENDM
|
||||||
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
||||||
.macro .PROC name
|
.macro .PROC name
|
||||||
.func \name
|
.func \name
|
||||||
\name:
|
_\name:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
.equ cfa_current_offset, -8
|
.equ cfa_current_offset, -8
|
||||||
.endm
|
.endm
|
||||||
|
@ -237,6 +242,12 @@ ENDM
|
||||||
.text
|
.text
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
/* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx
|
||||||
|
and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */
|
||||||
|
.macro FPO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame
|
||||||
|
/* dummy */
|
||||||
|
.endm
|
||||||
|
|
||||||
/* Macros for x64 stack unwind OPs */
|
/* Macros for x64 stack unwind OPs */
|
||||||
|
|
||||||
.macro .allocstack size
|
.macro .allocstack size
|
||||||
|
|
|
@ -41,6 +41,12 @@ ENDM
|
||||||
name ENDP
|
name ENDP
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
/* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx
|
||||||
|
and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */
|
||||||
|
FPO MACRO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame
|
||||||
|
.FPO (cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame)
|
||||||
|
ENDM
|
||||||
|
|
||||||
/* MASM doesn't have an ASCII macro */
|
/* MASM doesn't have an ASCII macro */
|
||||||
.ASCII MACRO text
|
.ASCII MACRO text
|
||||||
DB text
|
DB text
|
||||||
|
@ -143,7 +149,7 @@ ENDM
|
||||||
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
|
||||||
.macro .PROC name
|
.macro .PROC name
|
||||||
.func \name
|
.func \name
|
||||||
\name:
|
_\name:
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
.equ cfa_current_offset, -8
|
.equ cfa_current_offset, -8
|
||||||
.endm
|
.endm
|
||||||
|
@ -192,6 +198,12 @@ ENDM
|
||||||
.text
|
.text
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
/* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx
|
||||||
|
and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */
|
||||||
|
.macro FPO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame
|
||||||
|
/* dummy */
|
||||||
|
.endm
|
||||||
|
|
||||||
/* Macros for x64 stack unwind OPs */
|
/* Macros for x64 stack unwind OPs */
|
||||||
|
|
||||||
.macro .allocstack size
|
.macro .allocstack size
|
||||||
|
|
|
@ -216,12 +216,21 @@ MACRO(KiCallHandler, Handler)
|
||||||
nop
|
nop
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
#define FRAME_TRAP 1
|
||||||
|
|
||||||
MACRO(TRAP_ENTRY, Trap, Flags)
|
MACRO(TRAP_ENTRY, Trap, Flags)
|
||||||
EXTERN @&Trap&Handler@4 :PROC
|
EXTERN @&Trap&Handler@4 :PROC
|
||||||
PUBLIC _&Trap
|
PUBLIC _&Trap
|
||||||
_&Trap:
|
.PROC &Trap
|
||||||
|
/* Generate proper debugging symbols */
|
||||||
|
FPO 0, 0, 0, 0, 1, FRAME_TRAP
|
||||||
|
|
||||||
|
/* Common code to create the trap frame */
|
||||||
KiEnterTrap Flags
|
KiEnterTrap Flags
|
||||||
|
|
||||||
|
/* Call the C handler */
|
||||||
KiCallHandler @&Trap&Handler@4
|
KiCallHandler @&Trap&Handler@4
|
||||||
|
.ENDP &Trap
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
#define KI_RESTORE_EAX HEX(001)
|
#define KI_RESTORE_EAX HEX(001)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue