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


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


> > Я собссно, сейчас там и роюсь, но пока не нашел.
>
> попробуй поиск по слову irq :)

Какой я оказывается, тормоз, не додумался :))

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

Я таки с этим вчера разобрался :) Эта функция смотрит и выше вершины стека,
и в сегмент данных смотрит если число в стеке соответствует тому
что в сегм. данных., так что понятно.

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

Да, os2dasd тут оказывается не причем, прерывания обрабатывает
ibms506$, и потом похоже вызывает os2dasd :)

В общем, прошу прощения за несуразности.

Thu 27 Mar 2003 08:02 Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)




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.