This article is contributed. See the original author and article here.

The tool:


 


SmartDump – an exception and memory dump capture utility (github.com)     –              https://github.com/microsoft/SmartDump


 


Current Release v1.02 beta · microsoft/SmartDump


SmartDump_v1.02.zip


 


How to use:


 


1. First of all, we need to open Kudu console and drag/upload the tool into the site folder.


 


SD01.gif



2. Next, we need to find the PID of our LogicApp site’s w3wp.exe from Process Explorer.


NOTE: the one with (scm) is for Kudu console. Hence we always have to focus on w3wp.exe without (scm).


 


SD02.gif


3. Then we can run SmartDump.exe and use -p option to specify the PID found in step #2.


This makes SmartDump attach to the target process and start to monitor any exception thrown in it. By default, the tool captures 5 exceptions.


 


SD03.gif


 


After invoke LogicApp and generate some exceptions, SmartDump will be able to capture them within the console.


 


SD04.gif


4. If you want to see more exceptions, just use -n option to specify number of exceptions to be captured.


 


NOTE: using -n 0 to start an unlimited/endless capture. However please be careful to use this in Kudu because it doesn’t support Ctrl+C to exit a process. Run inside a common cmd.exe without such issue.


 


Tips: you can also add:  > filename.log  at the end of a command to make Kudu write output into a log file for you.


 


SD05.gif


5. To generate dump, use -d option to set number of dumps to be captured. Associating it with -f(filter include) and -fv (filter exclude) options allow you to capture dumps against specific exceptions.


 


-f      Filter exception based on specified string(s). Use ‘|’ as delimiter for multiple strings.


-fv     Exclude exceptions contain specified filter. Use ‘|’ as delimiter for multiple strings.


 


SD06.gif


6. The tool also supports to set memory address of breakpoint to generate dump files.


You can capture a dump first and then open it in debugger to find the code entry address of a function you interest in(or code address of any line).


Then use -a option of SmartDump to set the address as breakpoint for capture:


 


SD07.gif



SD08.gif


There are also some other useful options and sample commands can be found in the readme of GitHub page: SmartDump

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.