Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Отчёт об ошибке

Автор Тася, февраля 19, 2009, 14:17

0 Пользователи и 1 гость просматривают эту тему.

Тася

 Дорогие лингвофорумчане, наверняка у многих из вас при работе за компом в икспишке когда-нибудь да всплывало сообщеньице, что типа создан отчёт об ошибке, который поможет устранить ту или иную возникшую проблемку с какой-то программой или приложением к ней, чтобы больше такого не повторялось. Затем можно подключиться к Нету и отправить, а можно проигнорировать и окошко, и его содержимое. Лично у меня первый путь действительно помогает при недоразумениях  :yes:  :3tfu:, а вот второй влечёт его повторение. :( А как вы поступаете, когда видите подобное сообщение? И доверяете ли вы этим отчётам? Также хотелось бы выяснить у вас поточней, откуда вообще берутся такие отчёты?  Заранее всем спасибо, Тася.  :)
* Где единение, там и победа. Публий.

myst

Когда программа выполняет недопустимое действие (пытается писать или читать по адресу который писать или читать нельзя, в коде программы содержится операция, не поддерживаемая исполняющим её микропроцессором и т. п.) возникает исключительная ситуация. Система, обрабатывая эту исключительную ситуацию, перед тем как заставить процесс умереть может вызвать отладчик. Когда включен режим создания отчёта об ошибках, штатный отладчик «Доктор Ватсон» создаёт диагностический отчёт, который и предлагается отправить в Майкрософт.
Для обычного пользователя смысла в этом отчёте никакого нет. Поэтому, если нет намерения отправлять отчёт разработчикам, его можно выключить.

Тася

Цитата: myst от февраля 19, 2009, 14:39
Когда программа выполняет недопустимое действие (пытается писать или читать по адресу который писать или читать нельзя, в коде программы содержится операция, не поддерживаемая исполняющим её микропроцессором и т. п.)

А почему программа может начать выполнять эти недопустимые для неё действия? Только по причине воздействия вирусной программы?  :what:

Цитировать
Когда включен режим создания отчёта об ошибках, штатный отладчик «Доктор Ватсон» создаёт диагностический отчёт, который и предлагается отправить в Майкрософт.

  Значит, этот отладчик первоначально включен в XP по умолчанию? Я же его специально не активизировала. И что конкретно происходит в системе после отправки отчёта?  :???

Цитировать
Для обычного пользователя смысла в этом отчёте никакого нет. Поэтому, если нет намерения отправлять отчёт разработчикам, его можно выключить.

  А для меня есть. :) К счастью, помогает он мне по-дружески. :)
* Где единение, там и победа. Публий.

myst

Цитата: "Тася" от
А почему программа может начать выполнять эти недопустимые для неё действия? Только по причине воздействия вирусной программы?
Чаще всего это ошибки разработчиков программы.

Цитата: "Тася" от
И что конкретно происходит в системе после отправки отчёта?
Процесс программы убивает себя.

Цитата: "Тася" от
К счастью, помогает он мне по-дружески.
Чем помогает? :???

Алексей Гринь

Цитата: "myst" от
Процесс программы убивает себя.

Ну уж не сам процесс, а ОС.
肏! Τίς πέπορδε;

myst

Цитата: "Алексей Гринь" от
Ну уж не сам процесс, а ОС.
Нет, именно процесс. Обработчики структурных исключений выполняются в контексте процесса, где возникло исключение, в том числе и обработчик по умолчанию.

Алексей Гринь

Но обнаруживает ошибку (типа обращения к освобождённой памяти) и переключает выполнение кода (разворачивает стек, например) ведь ОС? Как это может делать сам процесс? То, что это происходит внутри контекста процесса - это понятно.
肏! Τίς πέπορδε;

myst

Цитата: "Алексей Гринь" от
Но обнаруживает ошибку (типа обращение к освобождённой памяти) и переключает выполнение кода (разворачивает стек, например) ведь ОС? Как это может делать сам процесс? То, что это происходит внутри контекста процесса - это понятно.
Первичный код обработки, конечно, выполняет ядро, а потом происходит переход непривилигированный режим и выполняется вызов зарегистированных обработчиков структурных исключений. В цепочке обработчиков всегда есть один, по умолчанию. Он тупо вызывает TerminateProcess (если я не ошибаюсь). Если других обработчиков нет, или они не отменяют вызов остальных, и таким образом очередь доходит до обработчика по умолчанию; процесс, выполняя его, вызывает TerminateProcess, чем и убивает себя. Примерно так.

Алексей Гринь

А всё равно получается, что убивает ОС, получив команду TerminateProcess :) Хотя это философский вопрос: если я попросил друга застрелить меня - это самоубийство или нет? :)
肏! Τίς πέπορδε;

myst

Цитата: "Алексей Гринь" от
А всё равно получается, что убивает ОС, получив команду TerminateProcess
Ну это-то да. Просто, ядро ещё может без спросу пристрелить или по просьбе другого процесса. Вот и приходится выкручиваться, чтобы различить эти случаи. :)

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр