mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
[NTOS]
Fix x64 compilation: - Some KDBG symbols for win32k debugging are defined only in x86 platform when _WINKD_ is disabled. - KdSetOwedBreakpoints is defined only if _WINKD_ is enabled, addendum for x64 to r68842. svn path=/trunk/; revision=68848
This commit is contained in:
parent
5ff109f0b3
commit
a39b4f51b9
4 changed files with 20 additions and 13 deletions
|
@ -354,7 +354,7 @@ extern ULONG Kd_WIN2000_Mask;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DBG
|
#if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
|
||||||
#define ID_Win32PreServiceHook 'WSH0'
|
#define ID_Win32PreServiceHook 'WSH0'
|
||||||
#define ID_Win32PostServiceHook 'WSH1'
|
#define ID_Win32PostServiceHook 'WSH1'
|
||||||
typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);
|
typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);
|
||||||
|
|
|
@ -26,8 +26,8 @@ VOID NTAPI PspDumpThreads(BOOLEAN SystemThreads);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ULONG ComponentId;
|
ULONG ComponentId;
|
||||||
ULONG Level;
|
ULONG Level;
|
||||||
} KD_COMPONENT_DATA;
|
} KD_COMPONENT_DATA;
|
||||||
#define MAX_KD_COMPONENT_TABLE_ENTRIES 128
|
#define MAX_KD_COMPONENT_TABLE_ENTRIES 128
|
||||||
KD_COMPONENT_DATA KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
|
KD_COMPONENT_DATA KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
|
||||||
|
@ -74,6 +74,7 @@ KdpServiceDispatcher(ULONG Service,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
|
||||||
/* Register a debug callback */
|
/* Register a debug callback */
|
||||||
case 'CsoR':
|
case 'CsoR':
|
||||||
{
|
{
|
||||||
|
@ -90,6 +91,7 @@ KdpServiceDispatcher(ULONG Service,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Special case for stack frame dumps */
|
/* Special case for stack frame dumps */
|
||||||
case 'DsoR':
|
case 'DsoR':
|
||||||
|
|
|
@ -15,7 +15,6 @@ EXTERN KiDispatchException:PROC
|
||||||
EXTERN FrLdrDbgPrint:DWORD
|
EXTERN FrLdrDbgPrint:DWORD
|
||||||
EXTERN KeBugCheckWithTf:PROC
|
EXTERN KeBugCheckWithTf:PROC
|
||||||
EXTERN MmAccessFault:PROC
|
EXTERN MmAccessFault:PROC
|
||||||
EXTERN KdSetOwedBreakpoints:PROC
|
|
||||||
EXTERN KiSystemFatalException:PROC
|
EXTERN KiSystemFatalException:PROC
|
||||||
EXTERN KiNpxNotAvailableFaultHandler:PROC
|
EXTERN KiNpxNotAvailableFaultHandler:PROC
|
||||||
EXTERN KiGeneralProtectionFaultHandler:PROC
|
EXTERN KiGeneralProtectionFaultHandler:PROC
|
||||||
|
@ -23,6 +22,11 @@ EXTERN KiXmmExceptionHandler:PROC
|
||||||
EXTERN KiDeliverApc:PROC
|
EXTERN KiDeliverApc:PROC
|
||||||
EXTERN KiDpcInterruptHandler:PROC
|
EXTERN KiDpcInterruptHandler:PROC
|
||||||
|
|
||||||
|
#ifdef _WINKD_
|
||||||
|
EXTERN KdSetOwedBreakpoints:PROC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
.data
|
.data
|
||||||
|
@ -509,16 +513,19 @@ FUNC KiPageFault
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
test eax, eax
|
test eax, eax
|
||||||
|
#ifndef _WINKD_
|
||||||
|
jge PageFaultReturn
|
||||||
|
#else
|
||||||
jl PageFaultError
|
jl PageFaultError
|
||||||
|
|
||||||
/*
|
/* Check whether the kernel debugger has owed breakpoints to be inserted */
|
||||||
* We succeeded. Check whether the kernel debugger has
|
|
||||||
* owed breakpoints to be inserted, then return.
|
|
||||||
*/
|
|
||||||
call KdSetOwedBreakpoints
|
call KdSetOwedBreakpoints
|
||||||
|
/* We succeeded, return */
|
||||||
jmp PageFaultReturn
|
jmp PageFaultReturn
|
||||||
|
|
||||||
PageFaultError:
|
PageFaultError:
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Disable interrupts again for the debugger */
|
/* Disable interrupts again for the debugger */
|
||||||
cli
|
cli
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ UCHAR KiTrapIoTable[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
PFAST_SYSTEM_CALL_EXIT KiFastCallExitHandler;
|
PFAST_SYSTEM_CALL_EXIT KiFastCallExitHandler;
|
||||||
#if DBG && !defined(_WINKD_)
|
#if DBG && defined(_M_IX86) && !defined(_WINKD_)
|
||||||
PKDBG_PRESERVICEHOOK KeWin32PreServiceHook = NULL;
|
PKDBG_PRESERVICEHOOK KeWin32PreServiceHook = NULL;
|
||||||
PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook = NULL;
|
PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1278,12 +1278,10 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
#ifdef _WINKD_
|
#ifdef _WINKD_
|
||||||
/*
|
/* Check whether the kernel debugger has owed breakpoints to be inserted */
|
||||||
* We succeeded. Check whether the kernel debugger has
|
|
||||||
* owed breakpoints to be inserted, then return.
|
|
||||||
*/
|
|
||||||
KdSetOwedBreakpoints();
|
KdSetOwedBreakpoints();
|
||||||
#endif
|
#endif
|
||||||
|
/* We succeeded, return */
|
||||||
KiEoiHelper(TrapFrame);
|
KiEoiHelper(TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue