Omnis Technical Note TNWI0003 July 2018
Obtaining Crash Reports on Windows
for Omnis Studio and related products
By Omnis Engineering
This tech note is aimed at Omnis developers experiencing consistently reproducible crashes using Omnis Studio, DAMs, ODBC Drivers, Data Bridges or related technologies, running on the Windows 32-bit or 64-bit platform. Omnis technical support may direct you to this page if you are exeriencing consistent crashes and if we are unable to resolve the issue by other means.
The procedure outlined below for generating a crash report ("dump" file) will only produce meaningful information if Omnis Technical Support have previously supplied you with a debug build of the executable or DLL in question. Please do not send us crash reports for standard release builds of executables and DLLs.
How to Obtain a Crash Report
- Back-up any original executable or DLL before replacing it with the debug build that we have sent to you. The debug build contains extra symbol and debugging information and will be significantly larger than a standard release executable/DLL.
- Download and un-zip the ProcDump utility from the Microsoft website. This can be downloaded from the following location: docs.microsoft.com/en-us/sysinternals/downloads/procdump
- Start Omnis, (or the executable in question) then get the process PID from the Task Manager. If the PID is not displayed, you can add it to the displayed columns from the View menu on older versions of Windows. On Windows 10, the PID is displayed with the process in the Details tab.
- Open a Command Prompt with Administrative privileges, navigate to the folder containing the ProcDump executables, then type:
Procdump.exe -ma -t -e <PID> (use Procdump64.exe for 64-bit Omnis)
- Continue to use Omnis and take steps necessary to reproduce the crash. When the crash occurs, it will create a full dump in the directory containing ProcDump.exe (or possibly the directory in use by the Command Prompt). This may take some time and create a file several GB in size. ZIP the dump file (it should compress very well) and email it to Omnis Technical Support.
Omnis Engineering will then be able to pair-up the crash report with the retainined Program DataBase (PDB) file that was generated at the same time your debug executable/DLL was produced. When engineering open the crash report in the presence of the project source code the and PDB file, this should allow a snapshot to be shown indicating exactly how and where the crash occurred, provided that the crash occurred inside the file for which debug information was generated.
Notes for Engineers
- Debug executables and DLLs are usually statically linked with the Multi-threaded Debug C/C++ Runtime Library using the /MTd compiler flag.