Blog Post

Azure Integration Services Blog
2 MIN READ

How to capture exception and dump files of LogicApp standard in Kudu console

WenJun_Zhang's avatar
WenJun_Zhang
Icon for Microsoft rankMicrosoft
Jun 20, 2021

The tool:

 

SmartDump - an exception and memory dump capture utility (github.com)    

 

https://github.com/microsoft/SmartDump

 

How to use:

 

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

 

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).

 

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.

 

 

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

 

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.

 

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.

 

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:

 

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

Updated Jun 21, 2021
Version 2.0

2 Comments