In order to determine the cause of a crash, or to find out the possible reason for a not responding application, we need a so-called memory dump file.
Creation of a memory dump file with Microsoft WinDbg
We recommend the use of Microsoft WinDbg to create such a file. Microsoft WinDbg enables our development department to analyze the problem as comprehensively as possible. However, you must be able to download executable files and install programs on the affected workstation. If it is not possible to install Microsoft WinDbg on the PC, Microsoft ProcDump can be used alternatively. Further information can be found in the second section of this knowledgebase article.
Please note the following information:
1.) To begin downloading Microsoft WinDbg, open the following Web page: Debugging Tools for Windows - Windows drivers | Microsoft Learn
2.) Select the “Get Debugging Tools for Windows (WinDbg) (from the SDK)” link.
3.) On the following page select the link “DOWNLOAD THE INSTALLER”, the download of the file “winsdksetup.exe” should start afterwards.
4.) As soon as the download is finished execute the file “winsdksetup.exe”.
5.) In the setup process select “Install the Windows Software Development Kit to this Computer” and click on “Next”.
6.) On the page “Select the features you want to install” please select only the “Debugging Tools for Windows”, other features are not required.
7.) After the successful installation, start Microsoft WinDbg via the start menu: “Windows Kits > WinDbg (x86)”, If you are using a 64-bit(x64) application please use “Windows Kits > WinDbg (x64)”.
8. a) In the “File > Open Executable” menu, select the executable file of your application if you are providing an executable application (e.g. using an .exe file). It may be necessary to change the file filter to “All Files”.
8. b) In the menu “File > Attach to Process”, select the executing application for a service or web page in which List & Label is used (e.g. “w3wp.exe” for a web page provided via Microsoft Internet Information Services (IIS)).
9.) After successful loading, the application or the process which host your application can be started via the menu item “Debug > Go”.
10.) Please try to reproduce the crash. If the application has crashed, you will receive further information in the Microsoft WinDbg console and the application should be in a hanging state so that no more entries can be recorded and edited.
11. a) In the event of a crash, a white command line will become available below the protocol window, where the following command can be entered to generate the memory dump file. If necessary, create the folder "C:\temp" if it does not already exist.
.dump /ma C:\temp\dump.dmp
11. b) If the application is hanging, click on “Debug > Break” within Microsoft WinDbg and enter the following command in the white command line below the protocol window. If necessary, create the folder "C:\temp" if it does not already exist.
.dump /ma C:\temp\dump.dmp
Please make sure that the path used to create the memory dump file is writable. A memory dump file created in this way (in this example at “C:\temp\dump.dmp”) can then be packed into a .zip archive (right click on the file, select the context menu entry “Send to > ZIP compressed folder”) and uploaded as an attachment to a new contact for the combit support in the support portal.
Creating a memory dump file with Microsoft ProcDump
If it is not possible to install Microsoft WinDbg on your PC, you can alternatively use Microsoft ProcDump to create a memory dump file. Although Microsoft ProcDump is also suitable for creating memory dump files, there is a greater chance that the memory dump file cannot be fully analyzed by our development department. Another problem is, that Microsoft ProcDump does not respond to certain types of crashes, especially hanging applications, so it cannot create a memory dump file. We therefore recommend that you use Microsoft WinDbg, which is explained in more detail in the upper section of this knowledgebase article.
Please note the following information about creating a memory dump file using Microsoft ProcDump:
1.) To begin downloading Microsoft ProcDump, open the following Web page: ProcDump - Sysinternals | Microsoft Learn
2.) Select the link “Download ProcDump”, the download of the file “Procdump.zip” should start afterwards.
3.) Extract the file “Procdump.zip” to your desktop (right click on the file, select the context menu item “Extract all”).
4.) Check the information in the “Eula.txt” file to allow working with Microsoft ProcDump. The acceptance of this “End User License Agreement (EULA)” is mandatory to create a memory dump file using Microsoft ProcDump and we assume that you accepted it within the further process of this instruction.
5.) Start your application using the known program shortcuts.
6.) Open the Windows command prompt, e.g. via the key combination “Windows + R” and then input the command “cmd” in the opened “Run” dialog).
7.) Use the following command to switch to the “Procdump” directory on the desktop:
cd %USERPROFILE%\Desktop\Procdump
8.) In order for Microsoft ProcDump to be able to create a memory dump file of a running process another command must be used. Enter this command in the opened window of the command prompt and confirm by pressing the Enter key. If necessary, create the folder "C:\temp" if it does not already exist.
procdump -accepteula -e -ma <Application.exe> -o C:\temp\dump.dmp
If you want to create a memory dump file for a 64-bit application, please use the following command. If necessary, create the folder "C:\temp" if it does not already exist.
procdump64 -accepteula -e -ma <Application.exe> -o C:\temp\dump.dmp
Please make sure that the path used to create the memory dump file is writable.
9.) You should then see more information about the process of your application in Microsoft ProcDump. This is a sign that Microsoft ProcDump is able to successfully create a memory dump and write it to a file.
10.) Go back to your application and repeat the steps until the crash occurs.
11.) Microsoft ProcDump automatically creates a memory dump file in the specified directory (in this example, “C:\temp\dump.dmp”) when the problem occurs.
A memory dump file created in this way can also be packed into a .zip archive (right click on the file, select the context menu entry “Send to > ZIP compressed folder”) and uploaded as an attachment to a new combit support contact in the support portal.
Creating a Memory dump file with the Windows Task Manager
If neither the download and installation of Microsoft WinDbg nor the download of Microsoft ProcDump is possible, the Windows Task Manager can be used as the last alternative to create a memory dump file.
Please note, however, that only a hanging program state can be captured in a memory dump file. A hanging program state can also be written to a memory image file using Microsoft WinDbg. When using the Windows Task Manager to create a memory dump file, it must also be taken into account that not all information necessary for an analysis of the problem can be written to the file. Under certain circumstances it is even possible that the memory dump is incomplete or was recorded at an incorrect time, so that our development department is not able to analyze the problem. If the application crashes, the Windows Task Manager is completely unsuitable - we also recommend using Microsoft WinDbg for this.
If you still want to create a memory dump file with the Windows Task Manager, please note the following information:
1.) Open the Windows Task Manager (key combination: CTRL + SHIFT + ESC, or by right-clicking on the start bar and selecting the context menu entry “Task Manager”).
2.) Start your application using the known program shortcuts.
3.) Repeat the steps within your application which lead to a hanging of the application.
4.) Switch back to the Windows Task Manager.
5.) Click on the “Details” tab.
6.) Search the displayed list for the process of your application - it may be useful to activate a sorting of the list by name.
7.) Select the process of your application with a right click.
8.) Click on the context menu item “Create dump file”.
9.) After a short processing time you will be shown another dialog which informs you about the storage location of the memory dump file. Usually the file is stored in the path for user-specific temporary files (e.g. “C:\Users<Windows Username>\AppData\Local\Temp”, also accessible via the Windows environment variable “%TEMP%”, which can be entered in the address bar in Windows Explorer and confirmed with the Enter key).
A memory image file created in this way can also be packed into a .zip archive (right click on the file, select the context menu entry “Send to > ZIP compressed folder”) and uploaded as an attachment to a new contact for combit support in the support portal.
Related articles:
https://forum.combit.net/t/troubleshooting-guidance/5082