2013-12-20 9 views
-4

我们的一位客户每隔几周就会遇到一次UI问题。由于客户位于相当远的距离,当发生此问题时,附近没有合格人员的可能性很高,我正在寻找一种方法来自动记录进程的所有线程的调用堆栈(或转储)在用户界面未响应数秒之后。如果该工具能够在冻结期间在特定时间间隔内记录调用栈,这也将很酷。当指定应用程序的UI挂起时,是否有工具记录调用堆栈?

有没有这样的工具?你有没有其他的技巧可以调试?

回答

1

您可以使用procdump-h参数(也可能使用-ma,但这可以根据您的需要)。这会在应用程序停止响应至少5秒后立即产生完整的内存转储。然后,您可以在WinDbg或Visual Studio中打开转储。只要确保你有完全相同版本的.NET框架(如果没有,从客户端计算机复制整个Framework文件夹)。

您可以在这里获得ProcDump - http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx。这是一个非常有用的工具,可以用来调试客户端问题(包括意外的异常等)。使用转储基本上尽可能接近应用程序在崩溃/挂起/发生之前的状态,包括堆数据,堆栈数据,调用堆栈,局部变量等。

+0

声音太棒了,非常感谢! – ctusch

相关问题