- Print stack frames on crashes.
authorCasper Hornstrup <chorns@users.sourceforge.net>
Sat, 30 Oct 2004 17:25:38 +0000 (17:25 +0000)
committerCasper Hornstrup <chorns@users.sourceforge.net>
Sat, 30 Oct 2004 17:25:38 +0000 (17:25 +0000)
- Users should report errors to ros-dev@reactos.com.

svn path=/trunk/; revision=11480

freeldr/freeldr/CHANGELOG
freeldr/freeldr/arch/i386/i386trap.S
freeldr/freeldr/include/arch.h
freeldr/freeldr/include/version.h

index a84da6d..7b1a3de 100644 (file)
@@ -1,3 +1,8 @@
+Changes in v1.8.26 (10/30/2004) (chorns)
+
+- Print stack frames on crashes.
+- Users should report errors to ros-dev@reactos.com.
+
 Changes in v1.8.25 (10/30/2004) (chorns)
 
 - Support FULL_MAP command line option.
index a2d30e5..4f3ceed 100644 (file)
 
 
 i386ExceptionHandlerText:
-       .ascii "FreeLoader i386 Exception Handler\n"
+       .ascii "An error occured in FreeLoader\n"
        .ascii VERSION
        .ascii "\n"
-//     .asciz "Report bugs to Brian Palmer <brianp@reactos.org>\n\n"
-       .asciz "Report bugs to ReactOS Kernel mailing list <ros-kernel@reactos.com>\n\n"
+       .asciz "Report this error to the ReactOS Development mailing list <ros-dev@reactos.com>\n\n"
 
 i386DivideByZeroText:
        .asciz "Exception 00: DIVIDE BY ZERO\n\n"
@@ -188,6 +187,9 @@ i386_LDTR_Text:
 i386_TR_Text:
        .asciz " TR: "
 
+i386FramesText:
+       .asciz "Frames:\n"
+
 /* Set by each exception handler to the address of the description text */
 i386ExceptionDescriptionText:
        .long   0
@@ -436,12 +438,38 @@ i386CommonExceptionHandler:
        movl    $0,i386_ScreenPosX
        incl    i386_ScreenPosY
        incl    i386_ScreenPosY
+  call  i386PrintFrames           // Display frames
+       incl    i386_ScreenPosY
+       incl    i386_ScreenPosY
 
 i386ExceptionHandlerHang:
        jmp             i386ExceptionHandlerHang
 
        iret
 
+i386PrintFrames:
+       movl    $0,i386_ScreenPosX
+       movl    $i386FramesText,%esi
+       call    i386PrintText
+
+       movl    i386_EBP,%edi
+printnextframe:
+  test  %edi,%edi
+  je    nomoreframes
+  movl  $STACK32ADDR,%eax
+  cmpl  %edi,%eax
+  jbe   nomoreframes
+  movl 4(%edi),%eax
+  pushl %edi
+       call    i386PrintHexDword                                       // Display frame
+  popl  %edi
+       incl    i386_ScreenPosX
+       incl    i386_ScreenPosX
+  movl 0(%edi),%edi
+  jmp printnextframe
+nomoreframes:
+  ret
+
 /************************************************************************/
 i386ClearScreenToBlue:
        .code32
index 20d3557..2e9ddfb 100644 (file)
 #define RMODE_DS       0x20    /* RMode data selector, base 0 limit 64k */
 
 #define        KERNEL_BASE     0xC0000000
-//#define      USER_CS         0x08
-//#define      USER_DS         0x10
-//#define      KERNEL_CS       0x20
-//#define      KERNEL_DS       0x28
 #define        KERNEL_CS       0x08
 #define        KERNEL_DS       0x10
 
index 5c826f4..4ae5e75 100644 (file)
@@ -22,7 +22,7 @@
 
 
 /* just some stuff */
-#define VERSION                        "FreeLoader v1.8.25"
+#define VERSION                        "FreeLoader v1.8.26"
 #define COPYRIGHT              "Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>"
 #define AUTHOR_EMAIL   "<brianp@sginet.com>"
 #define BY_AUTHOR              "by Brian Palmer"
@@ -36,7 +36,7 @@
 //
 #define FREELOADER_MAJOR_VERSION       1
 #define FREELOADER_MINOR_VERSION       8
-#define FREELOADER_PATCH_VERSION       25
+#define FREELOADER_PATCH_VERSION       26
 
 
 #ifndef ASM