У меня есть приложение Qt, которое взаимодействует с DLL. Пользовательский интерфейс динамический и явно загружает 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, если это имеет значение.