Дампы Памяти для Чайников (Часть 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