Дампы Памяти для Чайников (Часть 4)
Sponsored link: Software Diagnostics Services
В предыдущей части мы рассмотрели падение программ: Часть 3. Другой вид проблем, случающийся не менее чаще, когда нам нужен дамп памяти для анализа: зависания. Здесь существует некоторая путаница в понимании разницы между этими двумя категориями проблем: падение и зависание. Хотя, временами, зависание является прямым следствием падения, большая часть зависаний случается независимо от них. Зависания также проявляют себя отличным образом. Давайте, для начала, рассмотрим падения и зависания приложений (процессов).
Когда приложение (процесс) падает, он часто исчезает. Когда процесс зависает, приложение все еще находится в оперативной памяти: мы можем видеть его в Диспетчере Задач (Task Manager), на пример, но оно не реагирует на команды пользователя или на другие запросы как проверка реакции порта TCP/IP (pinging a TCP/IP port). Если у нас произошло падение операционной системы, то мы наблюдаем синий экран смерти (BSOD) и/или перезагрузку системы. При зависании системы все замирает.
Зависание приложений или системы легко объяснить если рассматривать взаимодействия между приложениями или компонентами системы как обмен сообщениями. Один компонент посылает сообщение другому и ждет ответа. Некоторые компоненты являются критическими, как например, реестр конфигурации и настроек (registry). Следующая картинка иллюстрирует часто встречающуюся ситуацию зависаний, когда реестр перестает отвечать на запросы. Тогда каждое приложение запрашивающее свои собственные или системные настройки перестает работать.
Очень часто встречающейся причиной зависаний является так называемый дедлок (deadlock), когда два приложения (точнее, их вычислительные пути, потоки) взаимно ждут друг друга. Здесь можно привести аналогию с заблокированной дорогой:
Для того, чтобы посмотреть, что внутри приложения (процесса) или операционной системы вызвало зависание, нам нужен дамп памяти. Как нам получить его, если приложение или служба зависла? Пока ссылки даны на еще не переведенные статьи на английском языке.
Как нам получить дамп памяти, если система зависла?
Для большинства системных зависаний достаточно выбрать дамп ядра (Kernel memory dump) в Контрольной Панели (Control Panel \ System \ Advanced \ Startup and Recovery). Дампы ядра меньше по размеру и меньше подвержены повреждениям и обрубаниям из-за не достаточного размера файла подкачки (page file). Если вы обнаружите что вам нужно посмотреть что происходит внутри приложений, то нужно будет выбрать полный дамп физической памяти (Complete memory dump).
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Crash Dumps for Dummies (Part 4)
Magazines:
Debugged! MZ/PE: MagaZine for/from Practicing Engineers




Books:
Software Diagnostics: The Collected Seminars


The Old New Crash: Cloud Memory Dump Analysis

Mobile Software Diagnostics: An Introduction

Pattern-Oriented Network Trace Analysis

Malware Narratives: An Introduction

Philosophy of Software Diagnostics: An Introduction, Part 1

Victimware: The Missing Part of the Equation

Pattern-Based Software Diagnostics: An Introduction

Systemic Software Diagnostics: An Introduction

Accelerated Windows Debugging 3: Training Course Transcript and WinDbg Practice Exercises

Pattern-Driven Software Diagnostics: An Introduction


Memory Dump Analysis Anthology, Volume 6

Accelerated Windows Software Trace Analysis: Training Course Transcript

Accelerated Mac OS X Core Dump Analysis: Training Course Transcript and GDB Practice Exercises

Software Narratology: An Introduction to the Applied Science of Software Stories




Introduction to Pattern-Driven Software Problem Solving

Memory Dump Analysis Anthology: Color Supplement for Volumes 4-5

Windows Debugging Notebook: Essential User Space WinDbg Commands

Memory Dump Analysis Anthology, Volume 5

Memory Dump Analysis Anthology, Volume 4

Memory Dump Analysis Anthology: Color Supplement for Volumes 1-3

Memory Dump Analysis Anthology, Volume 3

First Fault Software Problem Solving: A Guide for Engineers, Managers and Users

x64 Windows Debugging: Practical Foundations

Windows Debugging: Practical Foundations

DLL List Landscape: The Art from Computer Memory Space

Dumps, Bugs and Debugging Forensics: The Adventures of Dr. Debugalov

WinDbg: A Reference Poster and Learning Cards

Memory Dump Analysis Anthology, Volume 2

Memory Dump Analysis Anthology, Volume 1

