我有一个C# winforms应用程序,它与各种com数据源通信,并使用线程池进行大部分后端处理。我注意到winforms线程每天会挂起2-3次,持续20-30秒(在ui中可见,而com数据会停止20-30秒)。此后,我在线程池上编写了一个简单的任务来跟踪WinForms线程上的心跳,以检测这些实例,但我正在寻找一种自动触发完全转储(而不是小型转储)的方法,以便我可以看到WinForms线程在这些暂停期间到底在做什么。
是否有一些简单的命令行应用程序,我的后台线程可以在它自己的进程中调用,以作为调试器绑定到应用程序,生成完整的转储文件,然后允许应用程序恢复?
有没有更好的方法来调试它?
发布于 2011-04-15 13:15:21
您可以使用SysInternals procdump实用程序生成转储文件:
ProcDump是一个命令行实用程序,其主要目的是监视应用程序的CPU峰值,并在峰值期间生成崩溃转储,管理员或开发人员可以使用这些崩溃转储来确定峰值的原因。
发布于 2011-04-15 13:12:11
听起来Process Dumper应该能做到这一点。
https://stackoverflow.com/questions/5672602
复制相似问题