1
9
我想那个好的旧伐木对你有帮助。为每个单元添加一些日志记录
如果您的应用程序是多线程的,那么向工作线程添加一些日志记录,例如写入“[date]thread[name of class]working”,并每隔几秒钟写入一次(您可以使用一些调试模式)。当线程发现它应该终止时,还要添加日志记录。 还可以使用一些系统实用程序,如ProcessMonitor、Handles、Process Explorer(全部由Sysinternals/Microsoft提供)。监视磁盘读/写、句柄计数、内存使用情况、网络连接。也许你的应用程序在退出时在磁盘上抛出一些大的结构?也许它分配了很多内存,必须释放它? |
2
5
|
3
3
如果调试器的存在阻止了问题的发生,则等待问题发生,并且 然后 将调试器附加到它。暂停执行,可以检查每个线程的调用堆栈。 |
4
0
如果你在DLL中使用了大量的GUI组件和/或做了大量的多线程处理,那么你必须首先发现是哪个DLL或线程导致了这个问题。或者两者兼而有之。基本上,应该为加载/启动的每个DLL和线程创建日志事件。尝试获得这样一种情况:加载了最少的DLL和线程来生成冻结。然后你把问题定位到其中一个。
|
5
0
如果您的应用程序是在windows 7下运行的,并且有线程在DLL中运行,则必须关闭/终止所有正在运行的DLL线程,然后再关闭可执行文件的主窗体。
|
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
nader · 如何使用delphi在web上提交表单 6 年前 |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |