是否有工具在指定应用程序的UI挂起时记录调用堆栈?

时间:2013-12-20 13:25:20

标签: .net debugging

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

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

1 个答案:

答案 0 :(得分:1)

您可以将procdump-h参数一起使用(并且使用-ma可能也很有用,但这取决于您的需求)。一旦应用程序停止响应至少5秒,这将产生完整的内存转储。然后,您可以在WinDbg或Visual Studio中打开转储。只需确保您拥有完全相同的.NET框架版本(如果没有,请从客户端的计算机上复制整个Framework文件夹)。

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