Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Не менее часто программы могут лезть и в верх, за пределы... 25.08.09 00:45 Число просмотров: 1956
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Есть факт: программы часто лезут "не туда", и по нулевому > указателю - чаще всего. Система просто обязана с этим что > то сделать.
Не менее часто программы могут лезть и в верх, за пределы выделенных мегабайтиков, вплоть до 0xFFFFFFFF (точнее -1).
Что обязана в данном случае система - так это не упасть сама. Ну и разумеется прибить процесс.
Причем ошибки такого плана более характерны прогам, работающим с динамической памятью. Фортрановским или Бэйсиковским програм такие вещи не грозят.
> Кстати, они вполне нормально отлавливаются тем же SEH-ом > (более того, проверка доступности адреса на чтение или > запись, это собственно попытка чтения/записи с > SEH-оберткой).
Стоит влезть на уровень чуть повыше и обработка обращения по нулевому указателю остается на совести интерпретатора или средства разработки и подчас совсем недоступна на высоком уровне.
> Ядерные падения создают краш-дамп, который можно либо > поанализировать самому, либо отослать разработчикам. > Юзермодовые - там доктор ватсон заправляет. Его можно > заменить (или скидывать юзерские дампы прямо из Task > Manager-а), но я особо никода этим не занимался.
Представляю как будут визжать от радости разработчики какой-нибудь трам_пам_пам_бухгалтерии, когда им принесешь дамп или то, что выдал Др.Ватсон, с просьбой разобраться, почему завалилась их прога на твоем железе.
> Кстати, да. Меня вообще не интересует содержимое > дрватсоновского лога или заботливо переписанные на листик > цифры с синего экрана: зачем мучаться если есть крешдампы?
Я просто не могу себе представить как мгновенно экс-студент (совсем не умеющий программировать), сидящий на горячей линии, даст идеальный совет по решению проблеммы, после того, как я ему продиктую стэк вызова функций: "print_pipec" from "kirdyk" from "fatal_error" from "hren_znaye_chto" from "new_experemental_function"...
|
|
|