调试Delphi应用程序时的模块加载/卸载周期

时间:2012-10-11 09:47:48

标签: delphi debugging

有时在Delphi 2009调试器下运行应用程序时,只要我对应用程序表单执行任何操作(单击,移动..)Delphi开始使用以下消息来填充事件日志(类似):

Module Load: UNKNOWN_MODULE_59954.No DebugInfo. Base Address: $02D90000. Process MyApp.exe (5584)
Module Unload: UNKNOWN_MODULE_59954. Process MyApp.exe (5584)

每个周期的UNKNOWN_MODULE数量增加,因此例如已经有近60000个模块加载/卸载。

在洪水期间,申请仍然没有响应。有时我必须终止应用程序才能继续。

知道如何开始追踪原因吗?

1 个答案:

答案 0 :(得分:6)

作为“Arioch”的“建议 - 下载并运行Sysinternal's process explorer

  • 从“视图”菜单中选择“下方窗格 - > DLL(Ctrl + D)”
  • 在流程树中标记您的流程
  • 右键单击下方窗格的标题,然后选择“添加列”。
  • 从DLL选项卡中选择“Base Address”。
  • 对该列上的模块进行排序
  • 找到你的dll的基地址 - 你会得到它的名字:)

如果模块卸载太快 - 将“选项>差异突出显示持续时间”设置为9秒。

在我的情况下,它是odbcint.dll:

procMon - find unknown module

还要为您的PC进行病毒扫描 - 以防万一:)