Changes between Version 1 and Version 2 of AppDebugWin


Ignore:
Timestamp:
Apr 25, 2007, 11:04:59 AM (17 years ago)
Author:
Nicolas
Comment:

Converted by an automatic script

Legend:

Unmodified
Added
Removed
Modified
  • AppDebugWin

    v1 v2  
    22
    33
    4 === Contents ===
     4== Contents ==
    55
    66 * [http://boinc.berkeley.edu/#Anatomy of a Windows stack trace Anatomy of a Windows stack trace]
     
    3131
    3232
    33 === [http://boinc.berkeley.edu/ Anatomy of a Windows stack trace] ===
    34  [http://boinc.berkeley.edu/ Introduction] This section is going to describe what the output of a crash dump looks like and what it contains.
    35 
    36 
    37 
    38 [http://boinc.berkeley.edu/ Debugger version]
     33== Anatomy of a Windows stack trace ==
     34
     35=== Introduction ===
     36 This section is going to describe what the output of a crash dump looks like and what it contains.
     37
     38
     39
     40
     41=== Debugger version ===
     42
    3943{{{
    4044BOINC Windows Runtime Debugger Version 5.5.0
     
    5559
    5660
    57 [http://boinc.berkeley.edu/ Module List]
     61
     62=== Module List ===
     63
    5864{{{
    5965ModLoad: 00400000 00060000 C:\BOINCSRC\Main\boinc_samples\win_build\Release\uppercase_5.10_windows_intelx86.exe (PDB Symbols Loaded)
     
    7884
    7985
    80 [http://boinc.berkeley.edu/ Process Information]
     86
     87=== Process Information ===
     88
    8189{{{
    8290*** Dump of the Process Statistics: ***
     
    105113
    106114
    107 [http://boinc.berkeley.edu/ Thread Information]
     115
     116=== Thread Information ===
     117
    108118{{{
    109119*** Dump of the Worker thread (a4): ***
     
    113123
    114124
    115 [http://boinc.berkeley.edu/ General Information]
     125
     126==== General Information ====
     127
    116128{{{
    117129- Information -
     
    124136
    125137
    126 [http://boinc.berkeley.edu/ Unhandled Exception Record]
     138
     139==== Unhandled Exception Record ====
     140
    127141{{{
    128142- Unhandled Exception Record -
     
    139153
    140154
    141 [http://boinc.berkeley.edu/ Registers]
     155
     156==== Registers ====
     157
    142158{{{
    143159- Registers -
     
    152168
    153169
    154 [http://boinc.berkeley.edu/ Callstack]
     170
     171==== Callstack ====
     172
    155173{{{
    156174- Callstack -
     
    169187
    170188
    171 Module Name   The friendly name for the DLL or EXE.   Function Name   The name of the function.   Function Ordinal   Function ordinals only apply to functions that are publically exported from a DLL.   Symbol Offset   If the symbol file being used has private symbols stripped, then the symbol displayed may        not be the correct symbol.     You can use the symbol offset to lookup the correct symbol       from the object file or some other tool that can map symbols to source.   File/Line Information   Source file and line number information is not available in all symbol file formats, but       if it is there it'll be displayed.    PDB files are generally the best symbol file format to use. [http://boinc.berkeley.edu/ Debug Message Dump]
     189Module Name   The friendly name for the DLL or EXE.   Function Name   The name of the function.   Function Ordinal   Function ordinals only apply to functions that are publically exported from a DLL.   Symbol Offset   If the symbol file being used has private symbols stripped, then the symbol displayed may        not be the correct symbol.     You can use the symbol offset to lookup the correct symbol       from the object file or some other tool that can map symbols to source.   File/Line Information   Source file and line number information is not available in all symbol file formats, but       if it is there it'll be displayed.    PDB files are generally the best symbol file format to use.
     190=== Debug Message Dump ===
     191
    172192{{{
    173193*** Debug Message Dump ****
     
    195215::
    196216
    197 [http://boinc.berkeley.edu/ Foreground Window Data]
     217
     218=== Foreground Window Data ===
     219
    198220{{{
    199221*** Foreground Window Data ***
     
    210232
    211233
    212 === [http://boinc.berkeley.edu/ Symbol Stores] ===
    213  [http://boinc.berkeley.edu/ Introduction] In order to obtain useful diagnostic information in the event of an application crash,  it is necessary to dump a callstack and any other relevant information about what was  going on at the time of the crash.  Symbols are only needed during a crash event,  therefore they are stripped from most applications to cut down on the binary size and  bandwidth requirements to deploy a new release.
     234== Symbol Stores ==
     235
     236=== Introduction ===
     237 In order to obtain useful diagnostic information in the event of an application crash,  it is necessary to dump a callstack and any other relevant information about what was  going on at the time of the crash.  Symbols are only needed during a crash event,  therefore they are stripped from most applications to cut down on the binary size and  bandwidth requirements to deploy a new release.
    214238
    215239Without symbols, callstacks tend to be nothing more than a list of function pointers  in memory.  A developer has to load the un-stripped executable in memory using the  same operating system and similar processor to jump to that memory address in order  to determine the function name and parameters.  This is very labor intensive and  generally not a very fun job.
     
    221245
    222246
    223 [http://boinc.berkeley.edu/ Requirements] You'll need the latest stable release of the  [http://www.microsoft.com/whdc/devtools/debugging/default.mspx    Debugging Tools for Windows. ]
     247
     248=== Requirements ===
     249 You'll need the latest stable release of the  [http://www.microsoft.com/whdc/devtools/debugging/default.mspx    Debugging Tools for Windows. ]
    224250
    225251Verify that your executable is setup to generate PDB debugging symbols for a release build.
     
    231257
    232258
    233 [http://boinc.berkeley.edu/ Project Symbol Store] Specifying a project wide symbol store is as easy as adding the symstore element to your config.xml file for the project.
     259
     260=== Project Symbol Store ===
     261 Specifying a project wide symbol store is as easy as adding the symstore element to your config.xml file for the project.
    234262
    235263Below is an XML shred with an example symstore element.
     
    247275
    248276
    249 [http://boinc.berkeley.edu/ Adding symbols to the symbol store] [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/using_symstore.asp Symstore] is a utility to manage symbol stores.  You'll want to create a local symbol store on your Windows build machine in which you'll initially add new symbol files with each revision of your application.
     277
     278=== Adding symbols to the symbol store ===
     279 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/using_symstore.asp Symstore] is a utility to manage symbol stores.  You'll want to create a local symbol store on your Windows build machine in which you'll initially add new symbol files with each revision of your application.
    250280
    251281Symstore will compress the symbol file and then copy it into your local symbol store.
     
    261291::
    262292
    263 [http://boinc.berkeley.edu/ Uploading symbols to the symbol store] Most projects tend to use scp to copy files between Windows machines and their project server.
     293
     294=== Uploading symbols to the symbol store ===
     295 Most projects tend to use scp to copy files between Windows machines and their project server.
    264296
    265297The example below copies the entire symstore to the target location.  After the copy operation you can delete all the subdirectories except '000Admin' to save time uploading for future application symbols.
     
    274306
    275307
    276 === [http://boinc.berkeley.edu/ Common Issues] ===
    277  [http://boinc.berkeley.edu/ Introduction] 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.
    278 
    279 
    280 
    281 [http://boinc.berkeley.edu/ Breakpoint Encountered (0x80000003)]
     308== Common Issues ==
     309
     310=== Introduction ===
     311 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.
     312
     313
     314
     315
     316=== Breakpoint Encountered (0x80000003) ===
     317
    282318{{{
    283319*** Dump of the Worker thread (15c4): ***
     
    313349::
    314350
    315 [http://boinc.berkeley.edu/ Invalid Parameter (0xc000000d)] Starting with Visual Studio 2005, Microsoft re-vamped the whole C Runtime Library.  Part of the re-vamp process was to do parameter checking on each function.  Places that would normally return a NULL value now cause a structured exception to be thrown.
     351
     352=== Invalid Parameter (0xc000000d) ===
     353 Starting with Visual Studio 2005, Microsoft re-vamped the whole C Runtime Library.  Part of the re-vamp process was to do parameter checking on each function.  Places that would normally return a NULL value now cause a structured exception to be thrown.
    316354
    317355The nature of this structed exception is different than most as they specifically coded it so that it will not engage the BOINC Runtime Debugger and it'll display a dialog box asking the user if they wish to debug the error.  If the user cancels the error code 0xc000000d is returned without any more information.
     
    359397
    360398
    361 [http://boinc.berkeley.edu/ Privileged Instruction (0xc0000096)]
     399
     400=== Privileged Instruction (0xc0000096) ===
     401
    362402{{{
    363403- Unhandled Exception Record -
     
    393433
    394434
    395 [http://boinc.berkeley.edu/ Stack Overflow (0xc00000fd)] An application will throw this exception when one of it's threads exceed the 1MB stack size allotment.
    396 
    397 
    398 
    399 [http://boinc.berkeley.edu/ Out of Memory Exception (0xe06d7363)]
     435
     436=== Stack Overflow (0xc00000fd) ===
     437 An application will throw this exception when one of it's threads exceed the 1MB stack size allotment.
     438
     439
     440
     441
     442=== Out of Memory Exception (0xe06d7363) ===
     443
    400444{{{
    401445*** Dump of the  thread (d08): ***