|
Contributed
By: sms admin
When an SMS 2.0 Server service or thread raises an
exception (such as an access violation or stack overflow) no visible message
should appear. Instead, the following items occur:
The service reports a status message (ID 669) for the
component that raised the exception. You can view this message in Status Message
Viewer.
The service creates an 'SMS\Logs\CrashDump\YYYYMMDD_HHMMSS_Service'
folder, where 'YYYYMMDD_HHMMSS'
is the date and time of the exception and 'Service'
is the name of the service that raised the exception (for example, Smsexec,
Sitecomp,or Smsdbmon).
If logging is turned on, the service copies all of the
log files into the 'SMS\Logs\CrashDump\YYYYMMDD_HHMMSS_Service'
folder.
Whether or not logging is turned on, the service also
dumps an internal cache of log messages to files in this folder. Even if logging
is not enabled, you still get the last 10 log messages from every thread of the
service.
The SMS service that raised the exception checks to see
if the 'C:\Die_evil_bug_die.sms'
file existed when the service started. If it did not exist when the service
started, the service stops. Site Component Manager restarts the service within
an hour and server operation continues.
If the 'C:\Die_evil_bug_die.sms'
file did exist when the service started, the service passes the exception back
to the operating system. The operating system handles the exception like any
other exception it receives from a program.
If the 'C:\Die_evil_bug_die.sms'
files exists, the operating system checks to see if the 'HKLM\Software\Microsoft\Windows
NT\CurrentVersion\AeDebug\Auto' Registry value
is set to '1'.
If it is set to '1',
the operating system immediately carries out the next item in this list.
If it is set to '0',
you see a dialog box that details the program error and prompts you to:
Click 'OK' to terminate the application.
-or-
Click 'Cancel' to debug the application.
If you do not want to debug the problem, click 'OK'
and the service stops.
If you want to debug the problem, copy the debug symbols
to the computer and make sure that the correct debugger will be started by the
next item in this list, and then click 'Cancel'.
The operating system starts the debugger specified by
the 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger'
Registry value. By default, this is Dr. Watson. If you install a debugger on
your computer, the value is set to your debugger.
For optimal debugging of SMS:
- Make sure that the 'C:\Die_evil_bug_die.sms'
file exists on your SMS site systems (your Site Server, remote SQL server,
remote CAPs, etc.) before installing SMS.
- Make sure that the 'HKLM\Software\Microsoft\Windows
NT\CurrentVersion\AeDebug\Auto' Registry value
is set to '0'.
|