Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Driver Debug - Разные способы есть ?  (Прочитано 26830 раз)
0 Пользователей и 12 Гостей смотрят эту тему.
buisyhanh
Постоялец

vn
Offline Offline

« : 09-10-2008 08:10 » 

Льюди, просто написан драйвер, откомпилирован, теперь запускать его - и Ох, не работает BSOD появляется. Что делать. Наверно перед тем как запускать драйвер нужно как-то все ошибки наладить как обыно сделали для Обычных приложений - как в VC studio, Turbo C, ....
 Я вижу только Checked build, Free build....,или PC - PC Debug, а польного чего - то для откомпиляции нет - ту.
 Вы знаете какие инструменты использовали для откомпиляции ?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 09-10-2008 08:30 » 

используйте отладчик режима ядра. напрмример на сайте microsoft-а в свободном скачивании.
в драйвере используйте DbgPrint() для вывода отладочных сообщений.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
DeeoniS
Интересующийся

ru
Offline Offline

« Ответ #2 : 09-10-2008 11:30 » 

Плюс к вышесказанному отлаживать надо на другой машине, можно на VMware
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 09-10-2008 14:40 » 

DeeoniS, к сожалению.
но если не изменяет память был LiveKD.
впррочем я его ни разу не использовал... равно как и winDbg)
*вздыхая по SoftIce...*
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
DeeoniS
Интересующийся

ru
Offline Offline

« Ответ #4 : 09-10-2008 17:39 » 

Ochkarik, ну мне кажется это больше не к сожалению, а к счастью Улыбаюсь Как-то спокойней свеженапрограммированный драйвер тестировать и отлаживать на другой машине.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 09-10-2008 19:01 » new

ну... согласен) хотя я на одной все делаю обычно. первые пол года видел синий экран раз 20 на дню) я тогда еще не умел документацию от майкрософта читать))) а сейчас обычно и отладчик не сильно нужен.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #6 : 10-10-2008 14:13 » 

Видно, что самый подходяций для компиляции метод - это испольлзование два КПа. А для того чтобы на одной машине хорошо откомпилировать, то нужно сидеть и 20 раз в день перезагружить КП. Но плюс еще надо понимать, что в зтом мертвом экране вывещено.
 Как можно понимать эти выведенные строчки, кто - то мене может показать ?
Записан
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #7 : 10-10-2008 14:17 » 

Между прочим у меня есть WinDbg но использовать его для компиляции не знаю как. Просто вижу там какие - то меню с строчки.... Вообще если напиман Драйвер (исходный или .sys файл) что делать для откомпиляции. Документацию читал но мало что - практически понятно.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 10-10-2008 15:54 » 

WinDbg не используется для компиляции.
он используется для отладки скомпилированного драйвера.
для компиляции(сборки драйвера) используется либо VS студия, либо make-файлы как в DDK. (точнее сам компилятор cl.exe)
как использовать - пробовал, мне не понравилось. уже все забыл)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #9 : 11-10-2008 01:10 » 

Хорошо, но для отладки если не опытный программист. Отладка - тоже проблема. Все равно нужно два КП ? и DDK tools, WinDbg или   такие же.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 11-10-2008 15:17 » 

buisyhanh,
LiveKD поищите. на одном ПК. кажется он поможет.

SoftIce - точно можно на одном ПК, но он два года назад перестал обновляться.
если ПК старый - подойдет SoftIce. им удобно железо отлаживать.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Vlaor
Гость
« Ответ #11 : 12-10-2008 11:14 » 

Желательно подключить к отладчику отладочные символы, просто в ассемблерном коде утонешь. Не знаю платные они или нет. Для XP SP1 вроде было бесплатно.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 12-10-2008 16:29 » 

Vlaor, ну как сказать... не ядро же отлаживать) а свой код в дебаге отображается. на Си. но вообще не помещает конечно)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #13 : 13-10-2008 03:26 » 

Нашел я статью обо дебагге с использованием VMWare :
       http://catch22.net/tuts/vmware
Но на степ 4 - непонятно где поставить команд (в cmd.exe) или (Windbg - и как ?). Я попробовал на cmd   
 windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0
результат такой: 'windbg' is not recognized as an internal or external command, operable program or batch file.

 Кто - то мог наладить такой тип дебаг ?

Записан
sss
Специалист

ru
Offline Offline

« Ответ #14 : 13-10-2008 05:02 » 

buisyhanh, как создавал ярлык? Найди windbg с помощью explorer. Создай ярлык.  Затем в свойствах ярлыка исправь "C:\xxx\windbg.exe" на "C:\xxx\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0

У меня, windbg установлен вот где -> "C:\Program Files\Debugging Tools for Windows\windbg.exe"
Записан

while (8==8)
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #15 : 13-10-2008 06:00 » 

buisyhanh, как создавал ярлык? Найди windbg с помощью explorer. Создай ярлык.  Затем в свойствах ярлыка исправь "C:\xxx\windbg.exe" на "C:\xxx\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0

У меня, windbg установлен вот где -> "C:\Program Files\Debugging Tools for Windows\windbg.exe"


Спасибо sss, с исправлением, запускается Windbg, но еще такой вопрос: если запускать windbg после запуски WinXP в WMWare то - занято com_1, если после этого то уменя появится такой экран:

* 01.jpg (119.11 Кб - загружено 885 раз.)
« Последнее редактирование: 20-10-2008 09:09 от Ochkarik » Записан
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #16 : 13-10-2008 06:01 » 

Это ошибки или нет ? Что делать для начала дебаг ?
Записан
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #17 : 13-10-2008 07:58 » 

 Hу люди, что я установил не правильно а ? windbg выдает мне такой тескт.
--------------------------------
Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\pipe\com_1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Kernel Debugger connection established.  (Initial Breakpoint requested)
Symbol search path is: C:\Windows\Symbols
Executable search path is:
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe -
Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
Built by: 2600.xpsp_sp2_rtm.040803-2158
Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055c700
System Uptime: not available
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
*                                                                             *
*   You are seeing this message because you pressed either                    *
*       CTRL+C (if you run kd.exe) or,                                        *
*       CTRL+BREAK (if you run WinDBG),                                       *
*   on your debugger machine's keyboard.                                      *
*                                                                             *
*                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
*                                                                             *
* If you did not intend to break into the debugger, press the "g" key, then   *
* press the "Enter" key now.  This message might immediately reappear.  If it *
* does, press "g" and "Enter" again.                                          *
*                                                                             *
*******************************************************************************
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe -
nt!DbgBreakPointWithStatus+0x4:
8052a5d8 cc              int     3
----------------------------------------

а по этой статьи :http://www.wd-3.com/archive/RemoteDbg.htm

 То нужно как-то установить еще symbols file of Driver (.pdb) сгенерированные при компиляции драйвера. Eсли так то как  правильно?

 - Я на писал драйвер, который связывает клавиатуру с приложением. А как через Windbg и
WMware отладить его. Причем при динамической запуске драйвера  - сразу BSOD. Что делать ?
Записан
sss
Специалист

ru
Offline Offline

« Ответ #18 : 15-10-2008 05:25 » 

buisyhanh, это реакция на точку останова int 3 в адресе 8052a5d8. Что бы продолжить выполнение нажми  g и enter (написано же!).  Вообще, тебе надо почитать чего нибудь по этим темам. 
Записан

while (8==8)
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #19 : 20-10-2008 07:41 » 

Cпасибо, я исправил все и запустил в норме все но я нашел кое что хорошенкое обо kernnel hook keyboard interrupt. Но по сути дела не работает, проблему не нашел - кто может ?

* Keyboard Sniffer.c (8.41 Кб - загружено 148609 раз.)
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 20-10-2008 09:12 » 

Keyboard Sniffer.c - судя по всему очень похоже на рабочий пример...
но за "KeStallExecutionProcessor(666);" руки отрывать надо.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #21 : 20-10-2008 10:49 » 

Что за руки отрывать надо ? не пойму. Ну хоть бы пример я запускал драйвер ручно получает иформацию обо ИДТ и замена kbd Interrupt Vector но не получаю символы, которые я набирал после запуски. По логике то Эти символы должны выводиться после выгружки драйвера.
 Вы пробовали запускать его ?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #22 : 20-10-2008 11:40 » 

запускать не пробовал - времени жалко...
по коду - идея понятна, запустить можно за сутки, если скрытых ошибок нет.

да, перед выгрузкой выводятся первые 1024 введенных символа. должны быть.
если клавиатура PS/2 а не USB)))))))))))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #23 : 20-10-2008 12:30 » 

запускать не пробовал - времени жалко...
по коду - идея понятна, запустить можно за сутки, если скрытых ошибок нет.

да, перед выгрузкой выводятся первые 1024 введенных символа. должны быть.
если клавиатура PS/2 а не USB)))))))))))
Что там за сутки запуск, просто запускать с помощью программной установки. PS понятно, но нечего не выводииться и дебаг сделал с помощью VM и РС.
 Ну идея есь идея но что там не работает коректно, что при ввода символов новый ISR не запускается.
 Я сделал тест но получиться только замена вектор прервания и все. Дальше не чего на происходить.
 Может кто-то обьяснить ?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 20-10-2008 12:45 » 

у вас клавиатура какая?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #25 : 20-10-2008 15:39 » 

У меня PS/2 клавиатура точно, так как сейчас напушу драйвер для работы с ним. На счет точное условие что требует в коде не беспокоится. Только где то не корректный подход использован в этом исходнике.
 Когда Дебаг пойдет то выводятся все адрессы ИДТ и происходила замена ИДТ. Но после этого не чего больше нет. По идеи - это ошибка из за того, что не подключается к прерыванию наш драйвер.
 Что - то там еще надо делать ?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 20-10-2008 16:16 » 

раскоментируйте все DbgPrint.
пришлите лог отладочных сообщений.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #27 : 21-10-2008 01:29 » 

Думаю проблема не бубет решена из - за прерывание не вызывает наш драйвер, этот механизм как-то не правильно работает или не может работать.  Отрекомментировка не дает ничего.
 Есть другой смысль.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines