The prelude:
========
My morning coffee was too strong today and it kicked me into thinking out-of-the-box ideas. Procdump is a great tool for collecting dumps in a Production environment, but I wanted to take it one step further to generate a dump on a specific .net core exception.
For example, I wanted to get a dump when IOException occurs with the below command:
procdump64.exe -e 1 -f IOException donetcoreapp.exe
When the System.IO.IOexception is raised in the target process, there is neither exception type name displayed nor dump generated, you only see the output like the below:
…
[04:42:56] Exception: E0434352.CLR
…
The out-of-box trick:
=============
Here are the steps that got the job done:
To dump exceptions for a 64-bit .net core app:
- Download the 64-bit dbgshim nuget package from the below link to the machine:
NuGet Gallery | Microsoft.Diagnostics.DbgShim.win-x64 6.0.360101
- Extract the 64-bit dbgshim.dll from the 64-bit package to the same folder as the procdump.
To dump exceptions for a 32-bit .net core app:
- Download the 32-bit dbgshim nuget package from the below link to the machine:
NuGet Gallery | Microsoft.Diagnostics.DbgShim.win-x86 6.0.360101
- Extract the 32-bit dbgshim.dll from the 32-bit package to the same folder as the procdump.
Then you can get the exception dump successfully.
...
[15:15:35] Exception: E0434F4D.System.IO.IOException ("I/O error occurred.")
[15:15:35] Dump 1 initiated: ...
[15:15:37] Dump 1 complete: 1 MB written in 1.4 seconds
...
Happy Debugging!!!
Updated Dec 14, 2022
Version 3.0xdzhu
Microsoft
Joined November 27, 2018
IIS Support Blog
Follow this blog board to get notified when there's new activity