Commit in reactos/ntoskrnl on MAIN
dbg/kdb_symbols.c+2-21.3 -> 1.4
kd/gdbstub.c+1-11.24 -> 1.25
ke/catch.c+11-101.51 -> 1.52
+14-13
3 modified files
Fix handling of debug traps in GDB stub/KiDispatchException.

reactos/ntoskrnl/dbg
kdb_symbols.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- kdb_symbols.c	12 Nov 2004 18:42:25 -0000	1.3
+++ kdb_symbols.c	13 Nov 2004 23:00:14 -0000	1.4
@@ -639,7 +639,6 @@
   KeReleaseSpinLock(&SymbolFileListLock, Irql);
   DPRINT1("Warning: Removing unknown symbol file: FileBuffer = %p, ImageBase = %p\n",
           SymbolInfo->FileBuffer, SymbolInfo->ImageBase);
-  ASSERT(0);
 }
 
 /*! \brief Loads a symbol file.
@@ -796,7 +795,8 @@
 {
   DPRINT("Unloading symbols\n");
 
-  if (SymbolInfo != NULL && SymbolInfo->FileBuffer != NULL)
+  if (SymbolInfo != NULL && SymbolInfo->FileBuffer != NULL &&
+      (PVOID)SymbolInfo->ImageBase != NULL)
     {
       KdbpSymRemoveCachedFile(SymbolInfo);
       SymbolInfo->FileBuffer = NULL;

reactos/ntoskrnl/kd
gdbstub.c 1.24 -> 1.25
diff -u -r1.24 -r1.25
--- gdbstub.c	28 Sep 2004 15:02:29 -0000	1.24
+++ gdbstub.c	13 Nov 2004 23:00:15 -0000	1.25
@@ -1411,7 +1411,7 @@
         }
     }
 
-  return kdHandleException;
+  return ((SigVal == 5) ? (kdContinue) : (kdHandleException));
 }
 
 

reactos/ntoskrnl/ke
catch.c 1.51 -> 1.52
diff -u -r1.51 -r1.52
--- catch.c	11 Nov 2004 12:27:40 -0000	1.51
+++ catch.c	13 Nov 2004 23:00:15 -0000	1.52
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: catch.c,v 1.51 2004/11/11 12:27:40 ekohl Exp $
+/* $Id: catch.c,v 1.52 2004/11/13 23:00:15 blight Exp $
  *
  * PROJECT:              ReactOS kernel
  * FILE:                 ntoskrnl/ke/catch.c
@@ -80,13 +80,13 @@
   else if (KdDebuggerEnabled && KdDebugState & KD_DEBUG_KDB)
     {
       Action = KdbEnterDebuggerException (ExceptionRecord, Context, Tf);
-      if (Action == kdContinue)
-	{
-	  return;
-	}
     }
 #endif /* KDBG */
-  if (Action != kdDoNotHandleException)
+  if (Action == kdContinue)
+    {
+      return;
+    }
+  else if (Action != kdDoNotHandleException)
     {
       if (PreviousMode == UserMode)
 	{
@@ -94,7 +94,7 @@
 	    {
 	      PULONG Stack;
 	      ULONG CDest;
-	      char temp_space[12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT)]; // FIXME: HACKHACK
+	      char temp_space[12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT)]; /FIXME: HACKHACK */
 	      PULONG pNewUserStack = (PULONG)(Tf->Esp - (12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT)));
 	      NTSTATUS StatusOfCopy;
 
@@ -125,10 +125,11 @@
 	        }
 	      else
 	        {
-	          // Now it really hit the ventilation device. Sorry,
-	          // can do nothing but kill the sucker.
+	          /* Now it really hit the ventilation device. Sorry,
+	           * can do nothing but kill the sucker.
+	           */
 	          ZwTerminateThread(NtCurrentThread(), ExceptionRecord->ExceptionCode);
-	          DPRINT1("User-mode stack was invalid. Terminating target thread\nn");
+	          DPRINT1("User-mode stack was invalid. Terminating target thread\n");
 	        }
 	      Tf->Eip = (ULONG)LdrpGetSystemDllExceptionDispatcher();
 	      return;
CVSspam 0.2.8