1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Можно ли ноут кернел дебажить посредством кабеля firewire?

Тема в разделе "WASM.NT.KERNEL", создана пользователем neutronion, 22 фев 2011.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Привет, стоит задача отлаживать кернел код на ноуте, но! К сожалению на ноуте нет Com и firewire. Есть только usb. Что если приобресть usb-firewire и попробовать пристыковаться через это устройство.
    Сведения к размышлению: Устройство usb-com на ноуте хоть и установлено, WinDbg не видит его. У кого-нибудь есть опыт в данном вопросе. notebook aspire 1870tz
     
  2. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Какой компьютер у вас целевой? На целевом ПК должен быть полноценный COM или FireWire порт. На компьютере с WinDbg можно использовать и переходники USB-FireWire, USB-COM

    На целевом компьютере отладка через USB появилась только начиная с Виндовс Виста, и не на всех контроллерах она до сих пор поддерживается.

    Я сам вот в данный конкретный момент пользуюсь платой PCMCIA-FireWire на ноуте для отладки. Все работает шустренько!
     
  3. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Целевой компьютер
    notebook aspire 1870tz
    Ось: Win 7 pro
    Значит, через юсб можно дебажить?
    Так кабель юсб нужен специальный.

    Выхода PCMCIA нет у меня на целевом, только usb.

    Что если использовать на целевом usb-firewire?
     
  4. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    А вообще наверное, лучше всего разобраться с механизмом дебаженья на целевом. Ведь суть в чем? В том, что WinDbg использует по факту драйвер
    Com на целевом компьютере, а это означает, что на целевом компе за дело берется далее драйвер ком или firewire порта. На Целевом есть юсб
    И в принципе usb-com плата на целевом работает, т.е. драйвер com на нем имеется, значит нужно заставить этот usb-com драйвер работать так же как и простой сом драйвер. В общем самое важное это понять как работает драйвер com c ядром на целевой машине, и отсюда уже плясать. Может быть нужно будет написать простой драйвер, который расширит возможности usb-com драйвера, который не работает на целевой машине.

    Отсюда вытекающий вопрос: Как работает механизм драйвера сом на целевом компьютере, который позволяет дебажить целевой комп постредством нуль-модемного сом кабеля?

    То есть, если разобраться с проблемой на этом уровне, то вопрос будет решен принципиально, возможно нужно будет только написать драйвера заглушки для каждого случая.

    Схему приложил
     
  5. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Что-то я вашего ноута не нашел в интернете. Вы уверены что у вас именно эта модель? Это что, нетбук, что там нет PCMCIA? А PCIEx там есть?

    да нужен специальный кабель с адаптером USB типа такого http://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=12083 - цена 89 баксов (без учета шиппинга еще баксов 20)

    Основная трабла с USB дебаггингом - USB контроллер должен поддерживать такой дебаггинг + дебажить можно только на 1 порте контроллера! Вы уверены что у вас распаян именно дебажный порт?

    на целевом компьютере драйвера портов вообще не участвуют - портами напрямую управляет само ядро, точнее его часть которая называется Kernel debugger. Драйвера переходников здесь не используются. Иначе как вы себе представляете отладку одних драйверов с работающими другими драйверами?
     
  6. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    неправильно модель назвал aspire 1810tz прошу прощения.
     
  7. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Момент. Чисто пока теоретически:
    1) WinDbg посылает команду. Это команда уходит локальному драйверу
    com порта. Наверняка это команда упаковывается в некий вид пакета, по определенному протоколу.
    2) Далее команда\пакет покидает локальный комп и уходит по com кабелю на целевой комп.

    3)Пакет приходит на железку сом порта целевого компьютера. Здесь интересно уже. Каждой железякой управляет некий вид драйвера, или
    некий модуль ядра. Возможно в нашем случае это модуль ядра. Вопрос в студию, что это за модуль, и что происходит с командой, когда она попадает на com порт целевого компьютера? Значит этот модуль называется Kernel Debugger. Смею предположить, что у kernel debuggera
    наверняка, есть некая функция и скорее всего она одна, которая принимает команду в виде аргумента. Однако, чтобы попасть в kernel debugger, эту функцию кто-то должен вызвать. И скорее всего это некий модуль, по сути драйвер, который слушает сом железку. И у меня подозрение, что на этот модуль не установить точку останова, поскольку, остановиться работа этого модуля, а как раз он отвечает за обмен информацией с WinDbg. Т,е. если мы этот модуль остановим, то соответсвтвенно он перестанет реагировать на команды, поскольку в нем самом установлена точка останова. Однако из этой ситуации, опять чисто теоретически есть выход. Устанавливаем SoftIce, и дебажим целевой комп, с помощью WinDbg, но котроллируем модуль kernel debugger из SoftIce. А поскольку на win 7 SoftIce не поставить, то можно это сделать пока в XP в вируальной машине.
     
  8. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Я пробовал вешать мой usb-com девайс на разные юсб порты(у меня их 3) и без результатно. Настраивал по-моему bcdedit om
     
  9. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Эта функция очень урезанная и понимает только реальные COM порты, а не переходники USB-COM, увы. Нет, вы конечно можете ее выловить и улучшить, но вы же хотите отлаживать ваше ПО, а не отладчик?

    Я имел ввиду что на 1 порте получится дебажить с тем адаптером, ссылку на который я привел. Есть еще не распаянные порты.

    Судя по мануалу на вашем ноуте возможно есть либо MiniDV (FireWire) либо ExpressCard (PCIex).
     
  10. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    PS. внутри у него точно есть PCIEx слот http://forum.notebookreview.com/acer/399929-how-add-bluetooth-your-timeline-3810t-other-interesting-tidbits-machine.html

    я б рискнул =)
     
  11. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Да, это интересно, стоит изучить вопрос. Однако рискованно.
    Проще влезть и наломать дров!!! :)
     
  12. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Кстати есть идея, как определить какой модуль работает на целевой машине!
    1) Устанавливаем на целевую машину SoftIce, например в виртуалку.
    2) Цепляемся к виртуалке WinDbg.
    3) Запускаем SoftIce на целевой машинке.
    4) Отстанавливаем с помощью WinDbg целевую машину
    5) Вызываем SoftIce несколько раз, смотрим в каком модуле находимся.
    Этот модуль и будет kernel debuger, который слушает сом порт.
    Так как даже если мы остановили с помощью WinDbg целевую машину, это не значит, что она полностью остановлена, kernel debugger то работает.
    Если же мы останавливаем с помощью SoftIce, то уже ничего не работает на целевой машине, кроме конечно SoftIce :)
     
  13. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Попробовал. В такой ситуации, если делается останов в WinDbg, то
    в виртуальной машине всплывает SoftIce. В том же месте на которое указывает Windbg. В WinDbg ничего не происходит
    Код (Text):
    1. nt!DbgBreakPointWithStatus+0x4:
    2. 804e3b25 cc              int     3
     
  14. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    634
    Адрес:
    Russia СПБ
    в айсе надо сказать I3HERE OFF
     
  15. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    тогда останавливаемся в WinDbg, но при таком сценарии войти в SoftIce уже не получается. Стоит начать наверное новый топик.
    http://wasm.ru/forum/viewtopic.php?pid=421314#p421314