What are memory dumps?
When creating a memory dump, the contents of an application’s memory are written to a .dmp file. A minimal version of such a .dmp file is automatically generated if a Voxtron module crashes. These memory dumps provide information about what the program was doing when the crash happened.
Minimal vs complete memory dumps
The .dmp files that are generated after a crash only contain a minimum amount of information (i.e. stack memory).
If more information is required, a complete memory dump needs to be generated, containing both stack and heap memory.
Creating a complete memory dump
First you need to download the procdump tool: http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
Then you can create a complete memory dump using the command: procdump -ma tbrts.exe
This will generate a .dmp file containing the complete memory of the IVR.
User Stack Tracing
In case of a memory leak, it might be necessary to enable User Stack Tracing (UST) before creating the memory dump. Aside from the memory contents, the .dmp will now also include information about which part of the program allocated the memory.
For this you need to download the gflags tool: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549557%28v=vs.85%29.aspx
To create a complete memory dump with UST enabled:
- Stop the IVR
- Run: gflags.exe /i tbrts.exe +ust
- Start the IVR
- Make some test calls
- Run: procdump -ma tbrts.exe
If UST is no longer needed, you can disable it again: gflags.exe /i tbrts.exe -ust
Note that you need to restart the IVR after enabling/disabling UST.