Отлаживаю сервис. Хочется выводить сообщения. Вопрос: как в юзермоде использовать DbgPrint? Если можно, короткий пример на masm-e. Спасибо за помощь.
OutputDebugString http://cplus.about.com/od/codelibraryfor1/qt/debugging.htm переделываешь на масм, принцип думаю будет понятен
cresta Да не, все ок! Спасибо большое! Код (Text): .386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\masm32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\masm32.lib includelib \masm32\lib\kernel32.lib .data AppStartPoint BYTE "OutputDebugString ... ",0 .code start: INVOKE OutputDebugString, ADDR AppStartPoint INVOKE ExitProcess, 0 end start Чего-то картинка не отобразилась )))
ASMatic Не подскажете, что не так в этом коде? Собираю, запускаю, но в окне debugview - а строки не появляется ((( Код (Text): .386 .model flat, stdcall option casemap:none include \masm32\include\kernel32.inc include \masm32\include\user32.inc include \masm32\include\w2k\ntdll.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\w2k\ntdll.lib ;include \masm32\Macros\Strings.mac .data AppStartPoint BYTE "OutputDebugString ... ",0 .code start: invoke DbgPrint, offset AppStartPoint ;invoke DbgPrint, $CTA0("\nOutputDebugString ... \n") invoke ExitProcess, 0 end start Причем та же петрушка у меня если грузить ntdll.dll и вызывать DbgPrint по адресу.((( Код в посте #5 строку в окне дает ((( Не подскажете?
_sheva740 1. на вистаобразных системах нужно ключик в реестре создать..у вас ядро>=6.0? 2. debugview толи кривой толи еще чо - иногда не видать этих принтов( HKLM\SYSTEM\CCS\Control\Session Manager\Debug Print Filter создаем ключик (dword) DEFAULT со значением 8 у меня стоит, можно f - это уровень принтов системных... в виндбг видны принты, в ольке тоже - дебагвиев - сабака)
Да нет XP-ха. Код (Text): C:\Documents and Settings\USER>ver Microsoft Windows XP [Версия 5.1.2600] А DebugView скачал только что с http://technet.microsoft.com/en-us/sysinternals/bb896647 Но вариатн из #5 - наура!
ASMatic У мня HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter нет вообще, создать? Создал, перезагрузился но сволочь все равно не идет же (((
ntdll.DbgPrint(Ex) DebugView не показывает. Жаль замены нету. Так же DebugView не показывает вывод OutputDebugString в lower integrity процессах, например ИЕ, можно прилепить костыли, но опять же он не будет ловить все сообщения.
На вин 7 (запущена под варей) виндбг не хочет отображать OutputDebugString. DebugView тоже не все отображает( как это обойти ? HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter значение дефаулт = 0xF
_sheva740 и ка их просматривать в нем? У меня 1,99 версия. Через него видно дебаг строки от всех ринг 3 приложений? У меня длл инжектится в один из процессов системных и в них работает, и для отладки выводит дебаг строки.
XshStasX 1,99 версия уже очень много лет так что это не о чем не говорит. Да должен показывать .. А вообще делайте либым дебаггером(в частности WinDbg user3 or kernel) аттач к приложению и будут вам эти строки выводится, а не все которые разные приложения постят
shchetinin А в ХП выводятся, нежели так нельзя заставить вин 7 ? В общем перехват и перенаправление в файл все решило, не хотелось этого но пришлось.