[ros-diffs] [tkreuzer] 52586: [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.
tkreuzer at svn.reactos.org
tkreuzer at svn.reactos.org
Sat Jul 9 19:15:36 UTC 2011
Author: tkreuzer
Date: Sat Jul 9 19:15:34 2011
New Revision: 52586
URL: http://svn.reactos.org/svn/reactos?rev=52586&view=rev
Log:
[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.
Modified:
trunk/reactos/include/asm/asm.inc
trunk/reactos/include/reactos/asm.inc
trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
Modified: trunk/reactos/include/asm/asm.inc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/asm.inc?rev=52586&r1=52585&r2=52586&view=diff
==============================================================================
--- trunk/reactos/include/asm/asm.inc [iso-8859-1] (original)
+++ trunk/reactos/include/asm/asm.inc [iso-8859-1] Sat Jul 9 19:15:34 2011
@@ -32,16 +32,21 @@
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
.PROC MACRO name
- name PROC FRAME
- _name:
+ _&name PROC
ENDM
#define FUNC .PROC
/* ... and .ENDP, replacing ENDP */
.ENDP MACRO name
- name ENDP
+ _&name ENDP
ENDM
#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 */
.ASCII MACRO text:VARARG
@@ -184,7 +189,7 @@
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
.macro .PROC name
.func \name
- \name:
+ _\name:
.cfi_startproc
.equ cfa_current_offset, -8
.endm
@@ -235,6 +240,12 @@
.macro .code
.text
+.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 */
Modified: trunk/reactos/include/reactos/asm.inc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/asm.inc?rev=52586&r1=52585&r2=52586&view=diff
==============================================================================
--- trunk/reactos/include/reactos/asm.inc [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/asm.inc [iso-8859-1] Sat Jul 9 19:15:34 2011
@@ -41,6 +41,12 @@
name ENDP
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 */
.ASCII MACRO text
DB text
@@ -143,7 +149,7 @@
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
.macro .PROC name
.func \name
- \name:
+ _\name:
.cfi_startproc
.equ cfa_current_offset, -8
.endm
@@ -190,6 +196,12 @@
.macro .code
.text
+.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 */
Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S?rev=52586&r1=52585&r2=52586&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] Sat Jul 9 19:15:34 2011
@@ -216,12 +216,21 @@
nop
ENDM
+#define FRAME_TRAP 1
+
MACRO(TRAP_ENTRY, Trap, Flags)
-EXTERN @&Trap&Handler at 4 :PROC
+ EXTERN @&Trap&Handler at 4 :PROC
PUBLIC _&Trap
- _&Trap:
- KiEnterTrap Flags
- KiCallHandler @&Trap&Handler at 4
+ .PROC &Trap
+ /* Generate proper debugging symbols */
+ FPO 0, 0, 0, 0, 1, FRAME_TRAP
+
+ /* Common code to create the trap frame */
+ KiEnterTrap Flags
+
+ /* Call the C handler */
+ KiCallHandler @&Trap&Handler at 4
+ .ENDP &Trap
ENDM
#define KI_RESTORE_EAX HEX(001)
More information about the Ros-diffs
mailing list