RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Как локализовать обработчик прерыв. драйвера???


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : zuko, 2:5050/13.29, http://zuko.mitm.ru
To : valerius
Subj : Как локализовать обработчик прерыв. драйвера???

> >
> > теоретически должно быть описано в os/2 debuging handbook.
> > там на каждое прерывание есть соотв. структуры - irqi, dirq итп.
> Я собссно, сейчас там и роюсь, но пока не нашел.

попробуй поиск по слову irq :)

> > практически - попробуй в думпформаттере поизучать стеки прерываний,
> > там есть Analyze -> System -> Interrupt Stack.
> А эта функция, похоже, показывает какой-то гон. (имхо конечно).
> Я посмотрел, в стеке прерываний (селектор e8) всего несколько слов,
> (байт 32)а она (функция) показывает на два экрана последователь-
> ность вызовов. Причем как я понял, схема такая -- показывается
> фрейм стека и адрес функции, его записавшей (если я правильно понял).
> Так вот, эта функция (Analyze->...->Interrupt stack) иногда вместо
> метки кода, записавшего в стек, показывает метку из сегмента данных.
> Как это понимать, не знаю. Аналогично, функция "unwind stack" работает
> тоже как-то не так.

так она и не может абсолютную истину найти, она просто анализирует стек
прерываний системы и выводит все похожее в нем на правду..

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

> > еще, если ты предполагаешь что это за драйвер - проще в его
> > теле найти его интеррупт роутину. hiew-ом или даже IDA-ой если
> > потребуется.
> Я нашел версию os2dasd (я думаю, что это он) с .sym'ом, к нему
> прилагающимся. Попробую найти точку входа среди символов.

типа как бы os2dasd _не_ обрабатывает прерываний.
он типа занимается присоединением букв C: D: E: к разделам.
вообще есть же доки, там все описано. есть и сорцы..


Tue 25 Mar 2003 09:04 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.2.1) Gecko/20021




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.