GemFire Native Client 3.x and later on Windows
Describe how to install, configure and use DebugDiag to troubleshoot crash dump files generated by the Native Client.
Native Client may crash because of some critical issue and create a crash dump. It’s helpful to see what was happening with extracting stack traces
The two most common used tools for doing diagnostics on Windows i DebugDiag and WinDbg. To extract stack trace, WinDbg could be helpful. However, it’s slightly difficult to use and understand it. DebugDiag is easy to use for the purpose of extracting stack traces. Moreover, it provides some automatic analysis feature.
Install and configure DebugDiag
Download the tool from Microsoft
Install DebugDiag on your machine and run it. Recommended to install on Windows 7 or later
Click “Setting” icon to configure DebugDiag:
- Click the
Add pathicon to specify the location of the GemFire Native Client binary.
- Specify the path for
/path/to/NativeClient/bin. Please note that you have to specify the same version of GemFire Native Client, with which the crash dump was generated.
- Click the arrow icon at the upper left corner to return to the first screen.
- Run automatic analysis with DebugDiag
Memory Pressure Analysisoptionally if you have suffered from a crash issue showing as a OutOfMemory errors.
- Add path to the dump file to analyze.
- At last, press
Start Analysisand wait for a moment. It will take several minutes depending on file size to finish the analysis.
After finishing the analysis, DebugDiag automatically opens the resulting report in the Web browser.
If the automatic analysis is not useful, you can detect the problematic thread’s ID from the GemFire NC log. Then, take a look at the thread stack of the report according to the thread ID:
[error 2014/06/21 06:36:40.920717 1234325 DFOA31069J:3492 3608] Debug event STATUS_ACCESS_VIOLATION occurred at 05925FDC in process with pid 3492
According to the NC log the client crashed with Access Violation. The problematic thread’s ID is 3608. Use this thread ID to find the troublesome thread in the DebugDiag report.