6.3 Sample Dr. Watson Log File with Comments

The following version of the Dr. Watson log file includes comments. These comments do not appear in the normal Dr. Watson log. They have been added here to explain the sections of the log.

Start Dr. Watson 0.80 - Thu Sep 26 10:51:28 1991
        # This line is inserted each time you start Dr. Watson.
        # You can disable it with SkipInfo=time.

************************************************************************
        # This line marks the beginning of a Dr. Watson report.

Dr. Watson 0.80 Failure Report - Thu Sep 26 10:51:36 1991
        # Version 0.80 of Dr. Watson - date report was generated

BICHO had a 'Exceed Segment Bounds (Read)' fault at BICHO _DoCommand+006b
        # Application 'BICHO' had an 'Exceed Segment Bounds' fault
        # while reading memory.  The actual code that failed
        # was also in BICHO, 0x6b bytes past the start of the
        # DoCommand function.

$tag$BICHO$Exceed Segment Bounds (Read)$BICHO _DoCommand+006b
    $push word ptr [fffe]$Thu Sep 26 10:51:36 1991
        # This line repeats the previous information in a format
        # easier for automatic code to parse.  It also includes
        # the actual faulting instruction (a push instruction here).

CPU Registers (regs)
ax=1e54  bx=0014  cx=0d7f  dx=0111  si=1e54  di=0111
        # The 16-bit CPU registers.  This can be useful for decoding
        # what address an instruction was modifying.

ip=02fd  sp=230c  bp=237a  O- D- I+ S- Z- A+ P+ C-
        # The IP is the instruction pointer (Program Counter).
        # SP and BP are the stack pointer and base pointer.
        # The last 8 items show the states of the flag bits.
        # In this case, Overflow, Direction, Sign, Zero, and Carry
        # bits are clear (0); the Interrupt, AuxCarry, and Parity
        # bits are set (1).

cs = 0e57  8059fbc0:083f Code Ex/R
        # Code segment selector is 0E57, linear address is 8059FBC0
        # (enhanced-mode linear addresses often start with 8xxx),
        # and the limit is 083F.  Accessing code and data segments
        # beyond their limits is a common cause of GP faults.

ss = 0d7f  8059d5e0:25df Data R/W
        # Stack selector





ds = 0d7f  8059d5e0:25df Data R/W
        # Data selector--note that the limit is 25DF, and we
        # tried to read the value at FFFE, beyond the limit.

es = 0d7f  8059d5e0:25df Data R/W

CPU 32 bit Registers (32bit)
eax = 00001e54  ebx = 00000014  ecx = ffff0d7f  edx = 00000111
esi = 00001e54  edi = 00000111  ebp = 0000237a  esp = 800422fc
fs = 0000         0:0000 Null Ptr
        # If the selector is 0, it indicates a NULL pointer.  Trying
        # to use a NULL pointer is another common cause of GP faults.

gs = 0000         0:0000 Null Ptr
eflag = 00000002

System Info (info)
Windows version 3.10
Debug build
        # The debugging version of Windows was running.

Windows Build 3.1.048
        # This is an internal Microsoft build of Windows, #48.

Username Unknown User
        # Your name here

Organization Unknown Organization
        # Your organization here

System Free Space 7131008
Stack base 1122, top 9164, lowest 7504, size 8042
        # Stack size of current task

System resources:  USER: 87% free, seg 0777  GDI: 85% free, seg 05d7
LargestFree 6594560, MaxPagesAvail 1610, MaxPagesLockable 267
        # These statistics are almost useless.

TotalLinear 1948, TotalUnlockedPages 274, FreePages 52
TotalPages 614, FreeLinearSpace 1611, SwapFilePages 7158
Page Size 4096
4 tasks executing.
WinFlags -
  Math coprocessor
  80386 or 80386 SX
  Enhanced mode
  Protect mode

Stack Dump (stack)
        # We dump the stack to see what called the routine that failed.





Stack Frame 0 is BICHO _DoCommand+006b        ss:bp 0d7f:237a
        # The failure occurred in BICHO, 0x6B bytes past the
        # start of DoCommand.

0e57:02f0  e9 02b9               jmp    near 05ac
0e57:02f3  6a 00                 push   00
0e57:02f5  9a 8db0 0477          callf  0477:8db0
0e57:02fa  e9 02af               jmp    near 05ac
(BICHO:_DoCommand+006b)
        # The failure happened on the following instruction:

0e57:02fd  ff 36 fffe            push   word ptr [fffe]
        # We tried to read a value from memory at DS:FFFE and
        # push it on the stack.  However, the limit of the DS
        # segment is 25DF.

0e57:0301  68 0110               push   0110
0e57:0304  e8 fe5d               call   near 0164
0e57:0307  83 c4 04              add    sp, 04

Stack Frame 1 is BICHO MAINWNDPROC+0027       ss:bp 0d7f:2388
        # The Bicho MainWndProc probably called DoCommand.

0e57:0670  eb 16                 jmp    short 0688
0e57:0672  ff 76 0a              push   word ptr [bp+0a]
0e57:0675  56                    push   si
0e57:0676  e8 fc19               call   near 0292
(BICHO:MAINWNDPROC+0027)
0e57:0679  83 c4 04              add    sp, 04
0e57:067c  99                    cwd
0e57:067d  eb 1f                 jmp    short 069e
0e57:067f  6a 00                 push   00

Stack Frame 2 is USER IDISPATCHMESSAGE+007e   ss:bp 0d7f:239e
        # USER is the Windows USER.EXE.  It is what calls your
        # window and dialog box procedures.  In this case,
        # it called the BICHO MainWndProc.

Stack Frame 3 is BICHO WINMAIN+0050           ss:bp 0d7f:23bc
        # Here is the BICHO WinMain, which called
        # DispatchMessage, which called MainWndProc.

Stack Frame 4 is BICHO 1:00a3                 ss:bp 0d7f:23ca
        # Here is where the startup code calls WinMain.

System Tasks (tasks)
Task  WINEXIT, Handle 0daf, Flags 0001, Info    9248 08-09-90 16:52
  FileName C:\MS\WIN\DON\WINEXIT.EXE
Task DRWATSON, Handle 0ea7, Flags 0001, Info   26256 09-23-91 12:00
  FileName C:\WIN31\DRWATSON.EXE
        # This task will always be listed.



Task  PROGMAN, Handle 060f, Flags 0001, Info  110224 09-23-91 12:02
  FileName C:\WIN31\PROGMAN.EXE
        # This task (or whatever shell you use) will always be listed.

Task    BICHO, Handle 0da7, Flags 0001, Info   16537 09-11-91  8:45
  FileName D:\BICHO.EXE
        # This is the name of the program that caused the failure.

1> I ran a test app that accessed a value
2> beyond the limits of the segment bounds.
        # Anything you type in the Dr. Watson's Clues dialog box
        # is added to the log file, so you can type what you
        # want to remember.

Stop Dr. Watson 0.80 - Thu Sep 26 10:52:10 1991
        # This line is written each time Dr. Watson terminates.