Changes between Version 4 and Version 5 of AppDebugWin
- Timestamp:
- Feb 20, 2008, 2:53:42 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppDebugWin
v4 v5 21 21 }}} 22 22 23 This area provides some basic information about the version of the BOINC debugger being used, when the crash occur ed, and what the internal version of the Windows debugger technology is being used.23 This 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. 24 24 25 25 Symbol 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. … … 45 45 If 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. 46 46 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 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. 48 48 49 49 Export 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. … … 104 104 }}} 105 105 106 This section if included in the thread describes what event oc urred 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.106 This 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. 107 107 108 108 Further 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.] 109 109 110 It is important to note that both hardware and software exceptions can bubble up from the operating system through this mech inism.110 It is important to note that both hardware and software exceptions can bubble up from the operating system through this mechanism. 111 111 112 112 The 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). … … 205 205 Verify that the advance linker option to generate a checksum is enabled for a release build. 206 206 207 You'll need to explic tly 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.207 You'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. 208 208 209 209 === Project Symbol Store === … … 247 247 === Introduction === 248 248 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 simil iarity that you should be able to figure something out.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 similarity that you should be able to figure something out. 250 250 251 251 === Breakpoint Encountered (0x80000003) ===