Partager via


Not all Watson dumps are created equal (Watson part II)

The second installment of Watson will focus on the type of dump created during error reporting. Watson will chose one of the following depending on system settings and resources available – the significant difference between them is size required to process and store the dump.

Many Watson settings are stored in the registry, but the dump size is reserved during OEMInit:

extern DWORD dwNKDrWatsonSize;

void OEMInit (void)

{

dwNKDrWatsonSize = 0x20000

}

Generally, the more memory allocated here the more complete your Watson information will be – but you will be taking memory away from other applications so you need to be sensitive to the tradeoff. It is also worth mentioning that the larger number chosen here could prevent your device from storing a larger number of Watson dumps – sometimes less is more in this case.

Type of Dump File Size Description
Context dumps 4 KB - 64 KB.
  • Information about the crashing system
  • Exception that initiated the crash
  • Context record of the faulting thread
  • Module list, limited to the faulting threads of the owner process
  • Thread list, limited to the faulting threads of the owner process
  • Callstack of the faulting thread
  • 64 bytes of memory above and below the instruction pointer of the faulting thread
  • Stack memory dump of the faulting thread, truncated to fit a 64 KB limit
System dumps 64 KB - several MB
  • All information in a Context dump
  • Callstacks and context records for all threads
  • Complete module, process, and thread lists for the entire device
  • 2048 bytes of memory above and below the instruction pointer of the faulting thread.
  • Global variables for the process that was current at the time of the crash
Complete dumps All physical memory plus at least 64 KB
  • All information in a context dump
  • A complete dump of all used memory

Again, the PB help under Error Reporting is excellent and should be your official guide in understanding Watson and how it can help you debug stability issues.

Comments

  • Anonymous
    November 12, 2005
    Could you give some addtional advise on how to find a good number for dwNKDrWatsonSize?

    Is selecting 128kB a good value? Suppose I double that to 256 kB, what would it give me? Any risk 128kB could be a to small number?

  • Anonymous
    November 18, 2005
    The comment has been removed

  • Anonymous
    September 12, 2007
    I want to run an application on Windows Mobile 6.0 and want to know extract the call stack when there is any exception or a crash. Please tell me how it can be achieved.

  • Anonymous
    April 21, 2009
    Below is the second half of a well executed document from guestRx: Bulent Elmaci. Bulent has worked with