mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 20:50:29 +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
|
||||
|
||||
#if DBG
|
||||
#if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
|
||||
#define ID_Win32PreServiceHook 'WSH0'
|
||||
#define ID_Win32PostServiceHook 'WSH1'
|
||||
typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);
|
||||
|
|
|
@ -26,8 +26,8 @@ VOID NTAPI PspDumpThreads(BOOLEAN SystemThreads);
|
|||
|
||||
typedef struct
|
||||
{
|
||||
ULONG ComponentId;
|
||||
ULONG Level;
|
||||
ULONG ComponentId;
|
||||
ULONG Level;
|
||||
} KD_COMPONENT_DATA;
|
||||
#define MAX_KD_COMPONENT_TABLE_ENTRIES 128
|
||||
KD_COMPONENT_DATA KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
|
||||
|
@ -74,6 +74,7 @@ KdpServiceDispatcher(ULONG Service,
|
|||
break;
|
||||
}
|
||||
|
||||
#if defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
|
||||
/* Register a debug callback */
|
||||
case 'CsoR':
|
||||
{
|
||||
|
@ -90,6 +91,7 @@ KdpServiceDispatcher(ULONG Service,
|
|||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Special case for stack frame dumps */
|
||||
case 'DsoR':
|
||||
|
|
|
@ -15,7 +15,6 @@ EXTERN KiDispatchException:PROC
|
|||
EXTERN FrLdrDbgPrint:DWORD
|
||||
EXTERN KeBugCheckWithTf:PROC
|
||||
EXTERN MmAccessFault:PROC
|
||||
EXTERN KdSetOwedBreakpoints:PROC
|
||||
EXTERN KiSystemFatalException:PROC
|
||||
EXTERN KiNpxNotAvailableFaultHandler:PROC
|
||||
EXTERN KiGeneralProtectionFaultHandler:PROC
|
||||
|
@ -23,6 +22,11 @@ EXTERN KiXmmExceptionHandler:PROC
|
|||
EXTERN KiDeliverApc:PROC
|
||||
EXTERN KiDpcInterruptHandler:PROC
|
||||
|
||||
#ifdef _WINKD_
|
||||
EXTERN KdSetOwedBreakpoints:PROC
|
||||
#endif
|
||||
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
.data
|
||||
|
@ -509,16 +513,19 @@ FUNC KiPageFault
|
|||
|
||||
/* Check for success */
|
||||
test eax, eax
|
||||
#ifndef _WINKD_
|
||||
jge PageFaultReturn
|
||||
#else
|
||||
jl PageFaultError
|
||||
|
||||
/*
|
||||
* We succeeded. Check whether the kernel debugger has
|
||||
* owed breakpoints to be inserted, then return.
|
||||
*/
|
||||
/* Check whether the kernel debugger has owed breakpoints to be inserted */
|
||||
call KdSetOwedBreakpoints
|
||||
/* We succeeded, return */
|
||||
jmp PageFaultReturn
|
||||
|
||||
PageFaultError:
|
||||
#endif
|
||||
|
||||
/* Disable interrupts again for the debugger */
|
||||
cli
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ UCHAR KiTrapIoTable[] =
|
|||
};
|
||||
|
||||
PFAST_SYSTEM_CALL_EXIT KiFastCallExitHandler;
|
||||
#if DBG && !defined(_WINKD_)
|
||||
#if DBG && defined(_M_IX86) && !defined(_WINKD_)
|
||||
PKDBG_PRESERVICEHOOK KeWin32PreServiceHook = NULL;
|
||||
PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook = NULL;
|
||||
#endif
|
||||
|
@ -1278,12 +1278,10 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
|
|||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
#ifdef _WINKD_
|
||||
/*
|
||||
* We succeeded. Check whether the kernel debugger has
|
||||
* owed breakpoints to be inserted, then return.
|
||||
*/
|
||||
/* Check whether the kernel debugger has owed breakpoints to be inserted */
|
||||
KdSetOwedBreakpoints();
|
||||
#endif
|
||||
/* We succeeded, return */
|
||||
KiEoiHelper(TrapFrame);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue