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

Har*_*riv 2 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)
Run Code Online (Sandbox Code Playgroud)

每个循环的UNKNOWN_MODULE数量增加,因此例如已经有近60000个模块加载/卸载.

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

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

iPa*_*h ツ 6

作为"Arioch"的建议 - 下载并运行Sysinternal的进程探索器.

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

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

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

procMon  - 找到未知模块

还给你的电脑扫描病毒 - 以防万一:)