获取所有线程的堆栈跟踪

6
我想记录我的C#应用程序(UI)中所有线程的堆栈跟踪。我可以使用以下命令在WinDbg中获取所有托管线程的堆栈跟踪:
.loadby sos mscorwks ~* e !clrstack
是否有其他简单的方法来获取C#应用程序中所有线程的调用堆栈?这是因为我想在客户机器上运行应用程序并获取调用堆栈,而客户不是技术人员。
请帮助我。谢谢!
2个回答

1

如果您在客户机器上部署Windbg并使用WMemoryProfiler执行调试器命令,那么您也可以在实时过程中进行调试。听起来很奇怪,但实际上您可以使用调试器自动进行调试。

请参见此处

private static void SelfDebug()
{
    using (var debugger = new MdbEng())
    {
        string[] output = debugger.Execute("~*e!ClrStack");
        Console.WriteLine(String.Join(Environment.NewLine, output));
    }
}

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接