- Fix a "clever" check in KdpDeleteBreakpointRange that made the routine unable to delete more than one breakpoint in the specified range.

svn path=/trunk/; revision=68790
This commit is contained in:
Stefan Ginsberg 2015-08-21 20:57:19 +00:00
parent e816df8cd0
commit ca5361525f

View file

@ -206,7 +206,10 @@ KdpDeleteBreakpointRange(IN PVOID Base,
IN PVOID Limit)
{
ULONG BpIndex;
BOOLEAN Return = FALSE;
BOOLEAN DeletedBreakpoints;
/* Assume no breakpoints will be deleted */
DeletedBreakpoints = FALSE;
/* Loop the breakpoint table */
for (BpIndex = 0; BpIndex < KD_BREAKPOINT_MAX; BpIndex++)
@ -216,13 +219,13 @@ KdpDeleteBreakpointRange(IN PVOID Base,
((KdpBreakpointTable[BpIndex].Address >= Base) &&
(KdpBreakpointTable[BpIndex].Address <= Limit)))
{
/* Delete it */
Return = Return || KdpDeleteBreakpoint(BpIndex + 1);
/* Delete it, and remember if we succeeded at least once */
if (KdpDeleteBreakpoint(BpIndex + 1)) DeletedBreakpoints = TRUE;
}
}
/* Return to caller */
return Return;
/* Return whether we deleted anything */
return DeletedBreakpoints;
}
VOID