Author: sginsberg
Date: Fri Aug 21 20:57:19 2015
New Revision: 68790
URL:
http://svn.reactos.org/svn/reactos?rev=68790&view=rev
Log:
- Fix a "clever" check in KdpDeleteBreakpointRange that made the routine unable
to delete more than one breakpoint in the specified range.
Modified:
trunk/reactos/ntoskrnl/kd64/kdbreak.c
Modified: trunk/reactos/ntoskrnl/kd64/kdbreak.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/kdbreak.c?re…
==============================================================================
--- trunk/reactos/ntoskrnl/kd64/kdbreak.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kd64/kdbreak.c [iso-8859-1] Fri Aug 21 20:57:19 2015
@@ -206,7 +206,10 @@
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 @@
((KdpBreakpointTable[BpIndex].Address >= Base) &&
(KdpBreakpointTable[BpIndex].Address <= Limit)))
{
- /* Delete it */
- Return = Return || KdpDeleteBreakpoint(BpIndex + 1);
- }
- }
-
- /* Return to caller */
- return Return;
+ /* Delete it, and remember if we succeeded at least once */
+ if (KdpDeleteBreakpoint(BpIndex + 1)) DeletedBreakpoints = TRUE;
+ }
+ }
+
+ /* Return whether we deleted anything */
+ return DeletedBreakpoints;
}
VOID