我们有一个由主机(exe)和许多包含gui等的模块(dll)组成的应用程序.有时,应用程序会在关闭时冻结.大多数情况下,它通过TestComplete进行测试.我们无法在调试期间重现该行为.
我们怎样才能找出应用冻结的原因?
我猜它与线程有关,但我不确定.
我们应该尝试任何工具或技术吗?
我认为好的旧伐木会对你有所帮助.向每个单元添加一些日志记录finalization,将此类日志记录添加到全局数据的析构函数(数据库连接,全局配置等).当然不要破坏记录器对象.
如果您的应用程序是多线程的,那么将一些日志记录添加到工作线程,例如编写'[date] thread [class of class] working'并每隔几秒写一次(您可以使用一些调试模式).还在线程发现它应该终止时添加日志记录.
还可以使用一些系统实用程序,例如ProcessMonitor,Handles,Process Explorer(全部由Sysinternals/Microsoft提供).监视磁盘读/写,处理计数,内存使用情况,网络连接.也许您的应用程序在退出时将一些大型结构转储到磁盘上?也许它分配了大量内存并且必须释放它?
| 归档时间: |
|
| 查看次数: |
1600 次 |
| 最近记录: |