Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Я ничего по 7 лет не лопачу. 14.08.09 05:52 Число просмотров: 2658
Автор: Zef <Alloo Zef> Статус: Elderman
|
Есть задача - я ее решаю и забываю, как это сделал.
> > хендлов в ядре 2К, построенные по принципу "Сепулька - > см. > > сепулькарий, сепулькарий - см. сепуление, сепуление - > см. > > сепулька", при любой ошибке заканчивающиеся "синяком", > меня > > рассмешили в серьез и надолго. > Чушь какая то. Ты чего сказать то хотел (дневники я читал, > связи не вижу).
Щаз, попробую вспомнить... Короче, любая функция (1), возвращающая указатель на объект ядра, получающая хендл как аргумент, вызывает функцию (2) проверки его валидности, внутри этой функции вызывается внутренняя (3) ф-ция ядра (отсутствующая в заголовке), которая берет из хендла, иже суть структура, указатель и пытается прочитать то, на что он указывает. Если указатель инвалидный - получаем "синяк", в котором указан адрес этой 3 (А не моего кода!!! (0)) функции. Если все ОК - еще круче: эта ф-ция 1 вызывается повторно уже из себя ф-цию 3 и получает указатель из нее!
Если сильно насядешь, попробую вытащить это из известных сырцов и выложить здесь. Счас, в силу изложенного в заголовке, я не помню названий ф-ций, а в сырцах их не искал - всю цепочку бредовых вызовов вскрыл САйсом в процессе отладки своего фильтра.
> Ога. Монолитное (ок, гибридное) ядро будет тебе > авторекавериться после сбоя в драйвере. Да сейчас.
При таком обилии 3д парти кода в ядре и легкостиего подключения, следовало бы предусмотреть такую возможность, хотя бы для фильтров и, уж точно, предусмотреть запоминание каждой ф-цией ядра, способной породить или получить кривой указатель, вместо идиотских проверок распечатку адреса вызвавшего ее кода и списка аргументов (а не вершины стека, чтобы кодеру не напрягать голову ее расшифровкой с риском породить дополнительные ошибки).
|
|
|