Доктор Отладчиков рассказывает сказку
20 Июль 2008Еще карикатура от Narasimha Vedala:
Сказка на ночь
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Bedtime story from Dr. Debugalov
Еще карикатура от Narasimha Vedala:
Сказка на ночь
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Bedtime story from Dr. Debugalov
Еще одна карикатура от Narasimha Vedala (щелкните по картинке чтобы увеличить):
На соревнованиях
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Dr. Debugalov at WHDC
Эта легко запоминающаяся ссылка поможет вам быстро найти и установить отладчик WinDbg:
- Дмитрий Востоков @ DumpAnalysis.org -
Новые карикатуры от Narasimha Vedala:
Долина смерти
Моментальный фикс
Не тот дамп
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Bugs prosecute defectors
В предыдущей части мы рассмотрели как проверить тип дампа памяти: Часть 2. Сейчас я постараюсь объяснить падение (аварийное состояние) программ и роль постмортем отладчика (postmortem debugger).
Иногда компьютер (центральный процессор, ЦПУ) не может выполнить свою работу потому, что инструкции, которые он получает для того, чтобы сделать расчеты, прочитать или записать данные, являются неправильным. Представьте себе ситуацию, когда вы получаете адрес для доставки сообщения, и вы обнаруживаете, что он не существует… Следующая идеализированная картинка показывет эту ситуацию (если ячейки памяти, адреса, индексируются с 0, то -1, очевидно, неправильный адрес):
При обращении к неверному адресу ЦПУ выполняет специальную последовательность действий (так называемую ловушку, trap), что в конечном итоге, приводит к сохранению памяти, чтобы мы могли изучить ее содержание и выяснить, какие инструкции являлись неправильными. При падении операционной системы Windows мы видим синий экран, а затем память ядра (kernel memory) или полная физическая память компьютера сохраняется в файл (так называемый дамп ядра или полный дамп памяти, соответственно). Если у нас приложение или служба завершается аварийно, то ее содержимое памяти тоже сохраняются в файл (так называемый пользовательский дамп, user dump). Этот дамп памяти также называется постмортем дамп, и мы называем программу, которая сохраняет его - постмортем отладчик. Таких программ может быть несколько, и одна, которая указывается в реестре для выполнения, называется постмортем отладчик по умолчанию (default postmortem debugger). Следующая картинка иллюстрирует этот случай (здесь служба принтера, spoolsv.exe, аварийно завершилась из-за ошибки драйвера принтера):
В операционных системах до появления Windows Vista это был Dr. Watson (drwtsn32.exe), но он иногда не работал из-за ограничений, особенно в системах удаленного многопользовательского доступа (terminal services environment) и я всегда рекомендовал указывать в реестре другой отладчик, NTSD (ntsd.exe):
Как сделать NTSD постмортем отладчиком по умолчанию (статья на английском)
Я предпочитаю называть пользовательские дампы и полные дампы/дампы ядра постмортем дампами потому, что они сохраняются после того, как приложение, служба или система уже аварийно завершилась (фатальная ошибка уже произошла). Это отличает их от текущих снимков памяти (live memory dumps) сохраненных в ручную по желанию.
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Crash Dumps for Dummies (Part 3)
Для тех, кто не знает — регистрация начинается через 2 дня:
Windows Internals Beta Exam 71-660
- Дмитрий Востоков @ DumpAnalysis.org -
Еще карикатуры от Narasimha Vedala:
Анализ динамической памяти
Назревает революция
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Bugs plot a revolution!
Этот выдуманный герой и карикатуры являются созданием Narasimha Vedal:
Ошибка на стеке
У доски
Руководство по анализу
Выковыривание ошибок
Смерть багам
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Welcome to Dr. Dmitry Debugalov!
Создал сегодня вебсайт для своего издательства (все пока на английском языке):
- Дмитрий Востоков @ DumpAnalysis.org -
Из-за проблем с PHP, описанных здесь, я пере-установил весь русский блог, попутно потеряв предыдущие посты. Слава богу, их было только два, и я их заново перевел с оригинала. К сожалению, я также потерял один комментарий и приношу свои извинения тому, кто его оставил. Если вы не найдете свой комментарий к первому посту, то попробуйте написать его заново, если не ломает
- Дмитрий Востоков @ DumpAnalysis.org -