procdump 不为 StackOverflow 异常创建转储

Kal*_*lol 1 .net c# sysinternals procdump

我正在尝试为 .Net C# 应用程序创建故障转储。为此,我编写了一个代码,它会使应用程序因堆栈溢出异常而崩溃:

namespace Crashme
{
    class Program
    {


        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                System.Threading.Thread.Sleep(2000);
            }

            Console.WriteLine("Calling text");

            crash obj = new crash();
            obj.sMyText = "abc";

        }
    }

    class crash
    {
        public string sMyText
        {
            get { return sMyText; }
            set { sMyText = value; }
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的 procdump 命令:

.\procdump.exe -ma -e crashme.exe crash_dump1.dmp
Run Code Online (Sandbox Code Playgroud)

应用程序按预期崩溃,procdump 也在捕获它。我可以在 procdump 监控控制台上看到打印。但是没有创建转储。

猜猜我没有使用正确的 procdump 命令。有人可以帮忙吗?

ocd*_*cdi 7

我最近在生产中遇到了堆栈溢出错误。这篇博文有捕捉它的方法。

https://blogs.msdn.microsoft.com/benjaminperkins/2017/06/28/capture-a-stackoverflowexception-and-make-a-dump-0xc00000fd/

基本上你使用这些选项

procdump -accepteula -e 1 -f C00000FD.STACK_OVERFLOW -g -ma <PID> <OUTPUT PATH>