Changes between Version 4 and Version 5 of AppDebugWin


Ignore:
Timestamp:
Feb 20, 2008, 2:53:42 PM (16 years ago)
Author:
Ageless
Comment:

fixed typos

Legend:

Unmodified
Added
Removed
Modified
  • AppDebugWin

    v4 v5  
    2121}}}
    2222
    23 This area provides some basic information about the version of the BOINC debugger  being used, when the crash occured, and what the internal version of the Windows debugger technology is being used.
     23This area provides some basic information about the version of the BOINC debugger  being used, when the crash occurred, and what the internal version of the Windows debugger technology is being used.
    2424
    2525Symbol search paths are used to inform the debugger where it might be able to find the symbol files related to the modules loaded in memory.  Entries prefixed with 'srv*' are used to denote a web based symbol store. DbgHelp will use them if symsrv can be loaded at the time of the crash.
     
    4545If the correct symbol file can be found, it'll display what symbol file type is in use.  The three most common symbol types in modern software are 'PDB', 'exports', and  '-no symbols-'. Symbol files are pretty large and so most projects do not like to include  them as part of the APP VERSION package. Luckily Microsoft has created a technology called Symbol Stores which enable an application to be able to grab its symbol file from a web server at the time of a crash in a compressed format. We will describe setting up a symbol store later in this document.
    4646
    47 PDB files are generated at compilation time and usually have to be turned on for release builds. This file will contain all the needed information to generate a pretty good  callstack which you can use to diagnose problems.
     47PDB files are generated at compilation time and usually have to be turned on for release builds. This file will contain all the needed information to generate a pretty good callstack which you can use to diagnose problems.
    4848
    4949Export symbols usually only appear on DLLs since DLLs can export function pointers via the export table. When you see this in the module list you'll only see functions which  are listed in the export table in the callstack.
     
    104104}}}
    105105
    106 This section if included in the thread describes what event ocurred that caused the runtime debugger to engage. Structured Exceptions in Windows are not the same thing as C++ exceptions. Unless you are using a compiler that knows about both types it is unlikely that a C++ catch is going to actually catch this type of exception.
     106This section if included in the thread describes what event occurred that caused the runtime debugger to engage. Structured Exceptions in Windows are not the same thing as C++ exceptions. Unless you are using a compiler that knows about both types it is unlikely that a C++ catch is going to actually catch this type of exception.
    107107
    108108Further information about Structured Exception Handling can be found  [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/about_structured_exception_handling.asp  here.]
    109109
    110 It is important to note that both hardware and software exceptions can bubble up from the operating system through this mechinism.
     110It is important to note that both hardware and software exceptions can bubble up from the operating system through this mechanism.
    111111
    112112The example above shows that  EXCEPTION_BREAKPOINT(PlatformSDK\Include\winbase.h) was raised at 0x7C822583. EXCEPTION_BREAKPOINT is defined as STATUS_BREAKPOINT(PlatformSDK\Include\ntstatus.h) which is defined as ((NTSTATUS)0x80000003L).
     
    205205Verify that the advance linker option to generate a checksum is enabled for a release build.
    206206
    207 You'll need to explictly name both your EXE and PDB before compilation since the debugger bases the name of the PDB file off of information that is stored in the executable header.
     207You'll need to explicitly name both your EXE and PDB before compilation since the debugger bases the name of the PDB file off of information that is stored in the executable header.
    208208
    209209=== Project Symbol Store ===
     
    247247=== Introduction ===
    248248
    249 In this section we'll list a few things to look for when reading the dumps.  Please keep in mind that every application is different, but there should be enough similiarity that you should be able to figure something out.
     249In this section we'll list a few things to look for when reading the dumps.  Please keep in mind that every application is different, but there should be enough similarity that you should be able to figure something out.
    250250
    251251=== Breakpoint Encountered (0x80000003) ===