我有一个与DLL交互的Qt应用程序。 UI是动态的,并显式加载DLL(使用LoadLibrary()
),然后该DLL隐式加载其他DLL。
在不调试的情况下运行程序时,一切似乎都很好。但是,当我连接一个调试器(在本例中为CDB)时,标准输出充满了这样的行:
@{module_attach|051D0000| 17| 0| 0|295|051EA40F| 18|C:\Users\XXX\YYY.dll:15|24|28|32|36|40|49|53}@
@{module_detach|051D0000:15}@
YYY.dll是我的程序加载的DLL。它使调试极其缓慢,最终使它崩溃。编写的DLL通常是程序使用的2或3个DLL,但并不总是相同的(并且永远不会显示加载的所有DLL的消息)。
是调试器问题还是做错了什么?
有些精确:Qt应用程序是用C ++编写的,并且使用LoadLibrary()
。 DLL用C编写,并且仅使用隐式加载。在已加载的6个DLL中,一个由Qt应用程序加载,其余的则隐式地加载。如果有区别,则只有一个DLL具有DLLMain。