首页 > 解决方案 > 如何抑制“module_attach”/“module_detach”调试器日志

问题描述

我有一个与 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,如果这有区别的话。

标签: c++cqtdllwindbg

解决方案


推荐阅读