Parallels H-Sphere Documentation Developer Guide

 

Crash Reporting on Winbox

 

Last modified: 28 Dec 2007

 

WARNING: This documentation covers Parallels H-Sphere versions up to 3.1. For the latest up-to-date Parallels H-Sphere documentation, please proceed to the official Parallels site.

Questions Considered: understanding Winbox crash reporting
crash record file structure
detecting crashes in H-Sphere and non H-Sphere modules

 

Understanding Winbox Crash Reporting

H-Sphere Winbox writes unhandled exceptions to files iis.log and hssvc.log that are located in the <H-Sphere dir>\logs\crash directory. The messages written to these logs aren't very informative and are barely helpful in debugging unless you install the pdb package that complements error logs with detailed debug information. To install the pdb package, see how to update Winbox to the latest stable version. The pdb package can send crash reports to Positive Software support - the installer will prompt you for the SMTP server.

 

Crash Record File Structure

Each crash record file is of the following structure:
- the 1st line contains a crash date and crash description;
- the rest of the lines contain a crash stack.
Example:

[26.07.2004 / 16:36:33] Thread: 27904; Access violation occurred in module inetinfo (image )
    at RtlAllocateHeap() in :line 0 (in module ntdll)
    at () in :line 0 (in module htaccess)
    at () in :line 0 (in module htaccess)
    at () in :line 0 (in module htaccess)
    at ?BuildURLMovedResponse@HTTP_REQ_BASE@@QAEHPAVBUFFER@@PAVSTR@@KH@Z() in :line 0 (in module w3svc)
    at ?BuildURLMovedResponse@HTTP_REQ_BASE@@QAEHPAVBUFFER@@PAVSTR@@KH@Z() in :line 0 (in module w3svc)
    at ?ResetSSLInfo@W3_SERVER_INSTANCE@@SGXPAX@Z() in :line 0 (in module w3svc)
    at ?Disconnect@CLIENT_CONN@@QAEXPAVHTTP_REQ_BASE@@KKHPAH@Z() in :line 0 (in module w3svc)
    at ?ScanForTerminator@@YGPAEPBD@Z() in :line 0 (in module w3svc)
    at ?Copy@STR@@QAEHPBDK@Z() in :line 0 (in module w3svc)
    at ?RemoveEntry@CDirMonitor@@QAE?AW4LK_RETCODE@@PAVCDirMonitorEntry@@@Z() in :line 0 (in module ISATQ)
    at () in :line 0 (in module )

Each crash stack line may contain:

  • information about the function being executed when the crash occurred;
  • source information, such as a source file's name and line's number
    * Note: to record H-Sphere module's source information the pdb package is required (see how to update Winbox to the latest stable version).
  • module name containing crashed function

 

Detecting Crashes in H-Sphere and non H-Sphere Modules

The name of the module in the crash stack line indicates which module the crash occurred in. In the example above (in module htaccess) indicates that the crash occurred in H-Sphere module. An empty module file's name, for example (in module) indicates that the crash occurred in the main module.

When a crash occurs in any module, the crash report framework generates an exception containing information about the crash. A crash in H-Sphere module will trigger the exception and a record with H-Sphere module name will be written to the report file, for example (in module htaccess). As non H-Sphere modules can't catch the exception generated by the crash report framework, it will return back to crash report as "C++ exception" and will be registered in the crash report file immediately after the initial crash record. In this case two records will be written into the report file: the initial crash record and the "C++ exception" record as shown in the following example:

[26.07.2004 / 16:36:33] Thread: 3432; Access violation occured in module w3wp (image )
    at () in :line 0 (in module )

[26.07.2004 / 16:36:33] Thread: 3432; C++ exception occured in module w3wp (image )
    at RaiseException() in :line 0 (in module kernel32)
    at () in :line 0 (in module htaccess)
    at () in :line 0 (in module htaccess)
    at UnhandledExceptionFilter() in :line 0 (in module kernel32)
    at FlsSetValue() in :line 0 (in module kernel32)

Two records with the same crash date, time and crash description indicate that the crash occurred in a non H-Sphere module.
* Note: the time for the second record can differ by several seconds.



© Copyright 2017. Parallels Holdings. All rights reserved.