Applies To:
  • CitectSCADA/CitectHMI 6.10 Service Pack A, 6.10 Service Pack B, 7.xx

Summary:
In Citect version 6.10 Service Pack A there was an addition made to the Citect Crash Handler so that in the event of a crash it can also collect Dr Watson Mini Dumps. How is this feature enabled?

Solution:
Firstly, if you're running version 6.10 Service Pack A or 6.10 Service Pack B, you need to enable the Mini Dump feature by adding the following parameter into your citect.ini file:

[CrashHandler]
MiniDump = 1

NOTE: In version 7.00r1 and onwards, you do not need to add this parameter as the Citect Crash Handler has been modified so that the Mini Dump feature is enabled at all times.

Once this parameter has been added, the Citect Crash Handler will generate a Light Mini Dump by default, which will be included as a file called user.dmp inside the Exception Report ZIP file that is created in the event of a crash. However, on many occasions a Light Mini Dump may not contain enough information about a crash for Citect Support to determine the cause of and therefore, it is generally recommended that end users configure the Citect Crash Handler to obtain a Heavy Mini Dump instead. To do this, you will need to modify the Windows Registry as follows:

1. Create a Registry Key under:

\HKEY_CURRENT_USER\Software\Citect\CiDebugHelp\[ExeName]

... where [ExeName] is the name of the Citect application file without the .EXE extension (Citect32, CtExplor, CtEdit32, CtDraw32, or CtCicode). In the case of a Citect Runtime crash, your registry key will be:

\HKEY_CURRENT_USER\Software\Citect\CiDebugHelp\Citect32

NOTE: You may need to also manually add the Citect and/or CiDebugHelp keys as they may not exist.

2. Add a new DWORD value called MiniDumpType and set it to a value of 3. The base can be either Decimal or Hexadecimal

Currently, the possible values for MiniDumpType are:

0 ------> No Minidump.
1 ------> Light Minidump. (default).
              MiniDumpWithIndirectlyReferencedMemory (Heap referenced by stack)
2 ------> Medium Minidump.
              MiniDumpWithDataSegs (Global Variables, and heap referenced by stack)
              MiniDumpWithHandleData
              MiniDumpWithUnloadedModules (Details of recently unloaded modules)
              MiniDumpWithProcessThreadData (Complete process and thread data)
3 ------> Heavy Minidump.
              Same as Medium but with:-
              MiniDumpWithFullMemory (All memory, same as a User.dmp but smarter)
4 ------> Custom Minidump. (for possible future expansion)

If configured correctly, your registry should similar to the illustration below:



To make this whole process a little easier, a registry file has been attached to this article which, if you download, extract and double-click, will add all the necessary entries in the registry to enable Heavy Mini Dumps.


Keywords:
Mini Dump, MiniDump, Crash, Dr Watson