Hi,
this changes breaks the handling of exceptions if KDB isn't set. In KiDispatchException the variable Action is preinitialized with kdContinue. After your changes, KiDispatchException does always return without any action. After this changes, I'm not able to install reactos. At the second stage setup I do never see the reboot page.
- Hartmut
-----Original Message----- From: ros-diffs-bounces@reactos.com [mailto:ros-diffs-bounces@reactos.com] On Behalf Of Gregor Anich Sent: Sunday, November 14, 2004 12:00 AM To: ros-diffs@reactos.com Subject: [ros-diffs] [CVS reactos] Fix handling of debug traps in GDB stub/KiDispatchException.
_____
reactos http://cvs.reactos.com/cgi-bin/cvsweb/reactos /ntoskrnl http://cvs.reactos.com/cgi-bin/cvsweb/reactos/ntoskrnl /ke http://cvs.reactos.com/cgi-bin/cvsweb/reactos/ntoskrnl/ke
catch.c 1.51 http://cvs.reactos.com/cgi-bin/cvsweb/reactos/ntoskrnl/ke/catch.c?rev=1.51& content-type=text/x-cvsweb-markup - http://cvs.reactos.com/cgi-bin/cvsweb/reactos/ntoskrnl/ke/catch.c.diff?r1=t ext&tr1=1.51&r2=text&tr2=1.52&f=h > 1.52 http://cvs.reactos.com/cgi-bin/cvsweb/reactos/ntoskrnl/ke/catch.c?rev=1.52& content-type=text/x-cvsweb-markup 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; email" href="http://www.badgers-in-foil.co.uk/projects/cvsspam/%22%3ECVSspam 0.2.8
I also get a strange error->bsod that may be related.
When an exception is raised via ZwRaiseException->ZwRosSystemServiceThunk, i get "Divide Error Exception" with address 6ea84:
c006ea70 <_ZwRosSystemServiceThunk>: c006ea70: 55 push %ebp c006ea71: 89 e5 mov %esp,%ebp c006ea73: 83 ec 0c sub $0xc,%esp c006ea76: 89 45 fc mov %eax,0xfffffffc(%ebp) c006ea79: 89 55 f8 mov %edx,0xfffffff8(%ebp) c006ea7c: 8b 45 fc mov 0xfffffffc(%ebp),%eax c006ea7f: 8b 55 f8 mov 0xfffffff8(%ebp),%edx c006ea82: cd 2e int $0x2e
c006ea84: 89 45 f4 mov %eax,0xfffffff4(%ebp)
c006ea87: 8b 45 f4 mov 0xfffffff4(%ebp),%eax
Gunnar.
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Hartmut Birr Sent: Sunday, November 14, 2004 1:18 PM To: ReactOS Development List Subject: [ros-dev] RE: [ros-diffs] [CVS reactos] Fix handling of debug trapsin GDB stub/KiDispatchException.
Hi,
this changes breaks the handling of exceptions if KDB isn't set. In KiDispatchException the variable Action is preinitialized with kdContinue. After your changes, KiDispatchException does always return without any action. After this changes, I'm not able to install reactos. At the second stage setup I do never see the reboot page.
- Hartmut CVSspam 0.2.8