Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: OKTA от Март 13, 2014, 09:37



Название: OutputDebugString
Отправлено: OKTA от Март 13, 2014, 09:37
Товарищи, подскажите! Делаю две библиотеки по одному принципу. Одна загружается через DLL_PEOCESS_ATACH и ее вызовы OutputDebugString я вижу в DebugView. Вторая загружается через DLL_THREAD_ATTACH и ее вызовов OutputDebugString я не вижу. Хотя когда смотрю через APIMonitor, то вызовы идут, хотя в DebugView записи не появляются. В чем может быть причина?


Название: Re: OutputDebugString
Отправлено: Bepec от Март 13, 2014, 10:11
Хм...
Маловато у меня по этому знаний, потому вот догадка:
Через processAttach процесс знает что у него там что-то завелось и вывод соответственно идёт нормально.
А через threadAttach процесс вообще не в курсе что у него завелось.

PS % на 80 ошибаться могу :) А 20% основаны на том, что я threadAttach'em цеплялся к защищённой программе и защиты не срабатывала.


Название: Re: OutputDebugString
Отправлено: OKTA от Март 13, 2014, 10:24
через CreateRemoteThread цеплялся?  :)
оно может и так, но OutputDebugString-то все-таки вызывается ???
И в моем случае, это не внешнее внедрение библиотеки, а процесс сам так подгружает мою библиотеку.
Ладно, оно конечно пока не критично, но дебажить таким способом - застрелиться  ;D

Хотя все может быть и еще хуже, т.к. даже API-monitor пропускает некоторые вызовы почему-то  :'(