Создать файл дампа что это

Обновлено: 04.07.2024

Сбор дампов

Дампы можно собирать различными способами в зависимости от того, на какой платформе вы используете приложение.

Для сбора дампа внутри контейнера требуется возможность PTRACE, которую можно добавить с помощью --cap-add=SYS_PTRACE или --privileged .

Дампы могут содержать конфиденциальные сведения, поскольку они могут содержать всю память выполняющегося процесса. При их обработке следует учитывать ограничения безопасности и рекомендации.

Сбор дампов при сбое

Вы можете использовать переменные среды, чтобы настроить приложение на сбор дампа при сбое. Это полезно, если вы хотите получить представление о причинах сбоя. Например, запись дампа при возникновении исключения помогает выявить проблемы путем проверки состояния приложения при его сбое.

В следующей таблице приведены переменные среды, которые можно настроить для сбора дампов при сбое.

Переменная среды Описание Значение по умолчанию
COMPlus_DbgEnableMiniDump или DOTNET_DbgEnableMiniDump Если задано значение 1, включите создание дампа ядра. 0
COMPlus_DbgMiniDumpType или DOTNET_DbgMiniDumpType Тип собираемого дампа. Дополнительные сведения см. в таблице ниже. 2 ( MiniDumpWithPrivateReadWriteMemory )
COMPlus_DbgMiniDumpName или DOTNET_DbgMiniDumpName Файл, в который записывается дамп. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics или DOTNET_CreateDumpDiagnostics Если задано значение 1, включите ведение журнала диагностики для процесса дампа. 0

В следующей таблице приведены все значения, которые можно использовать для DOTNET_DbgMiniDumpType . Например, если установить для параметра DOTNET_DbgMiniDumpType значение 1, при сбое будет собираться дамп типа MiniDumpNormal .

Значение Имя Описание
1 MiniDumpNormal Включение только сведений, необходимых для записи трассировок стека для всех существующих потоков в процессе. Ограниченная память кучи сборки мусора и информация.
2 MiniDumpWithPrivateReadWriteMemory Включение кучи сборки мусора и сведений, необходимых для записи трассировок стека для всех существующих потоков в процессе.
3 MiniDumpFilterTriage Включение только сведений, необходимых для записи трассировок стека для всех существующих потоков в процессе. Ограниченная память кучи сборки мусора и информация.
4 MiniDumpWithFullMemory Включение в процесс всей доступной памяти. Необработанные данные памяти включаются в конец, чтобы начальные структуры можно было сопоставить напрямую без необработанных данных памяти. Этот вариант может привести к созданию очень большого файла.

Сбор дампов в определенный момент времени

Вы можете собрать дамп, когда приложение еще не завершило работу. Например, если вы хотите проверить состояние приложения, в котором, на ваш взгляд, возникла взаимоблокировка, настройка переменных среды для сбора дампов при сбое не будет полезна, так как приложение все еще работает.

Для сбора дампа в собственном запросе можно использовать dotnet-dump , который является средством CLI для сбора и анализа дампов. Дополнительные сведения об использовании этого средства для сбора дампов с помощью dotnet-dump см. в разделе Служебная программа для сбора и анализа дампа.

Анализ дампов

Дампы можно проанализировать с помощью средства CLI dotnet-dump или Visual Studio.

Если необходима отладка машинного кода, можно использовать расширение отладчика SOS совместно с LLDB в Linux и macOS. SOS также поддерживается в Windows c Windbg/cdb, хотя рекомендуется использовать Visual Studio.

См. также раздел

В руководстве по отладке дампов Linux представлены пошаговые инструкции по отладке дампа, собранного в Linux.

Файл дампа — это моментальный снимок, показывающий выполнявшийся процесс и загруженные для приложения модули в определенный момент времени. Дамп со сведениями о куче также содержит моментальный снимок памяти приложения на этот момент.

Открытие файла дампа с кучей в Visual Studio в чем-то подобно остановке в точке останова во время сеанса отладки. Хотя вы не можете продолжить выполнение, но можете проверить стеки, потоки и значения переменных приложения на момент создания дампа.

В основном дампы используются для отладки проблем на компьютерах, к которым у разработчиков нет доступа. Если вы не можете воспроизвести на своем компьютере аварийное завершение или зависание программы, возникшие на компьютере клиента, вы можете записать файл дампа с его компьютера. Дампы также создаются тест-инженерами, чтобы сохранить данные для дополнительного тестирования.

Отладчик Visual Studio может сохранять файлы дампа для управляемого и машинного кода. Он может отлаживать файлы дампа, созданные Visual Studio или другими приложениями, способными сохранять файлы в формате минидампа.

Требования и ограничения

  • Для отладки файлов дампа, полученных с 64-разрядных компьютеров, необходимо запустить Visual Studio на 64-разрядном компьютере.
  • Visual Studio поддерживает отладку файлов дампа управляемых приложений в Linux.

Visual Studio поддерживает отладку файлов дампа, создаваемых приложениями в машинных кодах на устройствах ARM. Он также поддерживает отладку дампов управляемых приложений с устройств ARM, но только в отладчике машинного кода.

Для отладки файлов дампа, полученных в режиме ядра, или использования расширения отладки SOS.dll в Visual Studio загрузите средства отладки для Windows из комплекта разработки драйверов для Windows (WDK).

Visual Studio не поддерживает отладку файлов дампа, сохраненных в старом формате полного дампа в режиме пользователя. Полный дамп в режиме пользователя не то же самое, что и дамп с кучей.

Отладка с использованием файлов дампа оптимизированного кода может сопровождаться ложной информацией. К примеру, встраивание компилятором функций может приводить к непредвиденным стекам вызовов, а другие виды оптимизации могут изменять время существования переменных.

Файлы дампа, с кучами или без куч

В файлах дампа могут содержаться сведения о куче, но могут и отсутствовать.

Файл дампа со сведениями о куче содержит снимок памяти приложения, включая значения переменных на момент создания дампа. Visual Studio также сохраняет в файле дампа с кучей двоичные файлы загруженных модулей машинного кода, что может значительно упростить отладку. Visual Studio может загружать символы из файла дампа с кучей, даже если не удается найти двоичный файл приложения.

Файлы дампа без сведений о куче намного меньше, чем дампы с кучами, но отладчику нужно будет загрузить двоичные файлы приложения, чтобы найти сведения о символах. Загруженные двоичные файлы должны точно соответствовать тем, которые выполнялись во время создания дампа. В файлах дампа без сведений о куче хранятся только значения переменных стека.

Создание файла дампа

При отладке процесса в Visual Studio можно сохранить дамп, когда отладчик останавливает выполнение при возникновении исключения или в точке останова.

Если включена JIT-отладка, можно подключить отладчик Visual Studio к аварийному процессу, который выполняется вне Visual Studio, а затем сохранить файл дампа из отладчика. См. раздел Подключение к выполняющимся процессам.

Сохранение файла дампа

Когда во время отладки происходит остановка (при возникновении ошибки или в точке останова), выберите Отладка > Сохранить дамп как.

В диалоговом окне Сохранить дамп как в разделе Тип файла можно выбрать Минидамп или Минидамп с кучей (значение по умолчанию).

Укажите путь сохранения и выберите имя файла дампа, а затем нажмите Сохранить.

Вы можете создавать файлы дампа с помощью любой программы, которая поддерживает формат минидампов Windows. Такой программой, например, может быть программа командной строки Procdump из Windows Sysinternals, которая может создавать файлы аварийного дампа процесса на основе триггеров или по требованию. Дополнительные сведения об использовании других средств для создания файлов дампа см. в разделе Требования и ограничения.

Открытие файла дампа

В Visual Studio последовательно выберите Файл > Открыть > Файл.

В окне Сводка файла минидампа отображается сводка и сведения о модулях для файла дампа, а также действия, которые можно выполнить.

В разделе Действия:

  • чтобы задать расположения для загрузки символов, выберите Set symbol paths (Задать пути к символам);
  • чтобы начать отладку, выберите Debug with Managed Only (Отладка только с управляемым кодом), Debug with Native Only (Отладка только с машинным кодом), Debug with Mixed (Отладка со смешанным кодом) или Debug with Managed Memory (Отладка с управляемой памятью).

Поиск файлов EXE, PDB и исходных файлов

Для использования всех возможностей отладки в файле дампа Visual Studio требуются следующие файлы.

  • EXE-файл, для которого был создан дамп, и другие двоичные файлы (DLL и т. п.), использовавшиеся процессом дампа.
  • Файлы символов ( .pdb) для EXE-файлов и других двоичных файлов.
  • EXE- и PDB-файлы, в точности соответствующие версии и сборке файлов, использовавшихся при создании дампа.
  • Исходные файлы для соответствующих модулей. Если не удается найти исходные файлы, можно использовать дизассемблирование модулей.

Если в дампе содержатся данные кучи, Visual Studio может обойтись без двоичных файлов для некоторых модулей, но необходимы двоичные файлы для достаточного количества модулей, чтобы создавать допустимые стеки вызовов.

Пути поиска для EXE-файлов

Visual Studio автоматически ищет EXE-файлы, не включенные в файл дампа, в следующих расположениях.

  1. В папке, содержащей файл дампа.
  2. В пути к модулю, указанному файлом дампа (это путь к модулю на компьютере, на котором был собран дамп).
  3. В путях к символам, указанных в разделе Инструменты (или Отладка) > Параметры > Отладка > Символы. Можно также открыть страницу Символы из панели Действия окна Сводка файла дампа. На этой странице можно добавить другие расположения для поиска.

Использование страниц No Binary, No Symbols или No Source Found

Если Visual Studio не может найти файлы, необходимые для отладки модуля в дампе, отображается соответствующая страница No Binary Found (Двоичные файлы не найдены), No Symbols Found (Символы не найдены) или No Source Found (Исходные файлы не найдены). На этих страницах содержатся подробные сведения о причине проблемы, а также ссылки на действия, которые могут помочь найти файлы. См. статью Указание файлов символов (.pdb) и файлов с исходным кодом в отладчике Visual Studio.

Сбой системы (также известный как "проверка ошибки" или "Остановка ошибки") происходит, когда Windows не может работать правильно. Файл сброса, который производится из этого события, называется сбросом сбоя системы.

Ручной файл сброса ядра или полного файла памяти полезен при устранении нескольких проблем, так как процесс записи системной памяти во время сбоя.

Настройка файлов страниц

См. поддержку свалок сбоя системы для требования к размеру файла страницы для сбоя системы.

Включить параметр сброса памяти

Для выполнения этой процедуры необходимо войти в систему в качестве администратора или члена группы администраторов. Если компьютер подключен к сети, параметры сетевой политики могут помешать вам завершить эту процедуру.

Чтобы включить параметр сброса памяти, выполните следующие действия:

В панели управлениявыберите систему и систему > безопасности.

Выберите параметры расширенных систем, а затем выберите вкладку Advanced.

В области запуска и восстановления выберите Параметры . ****

Убедитесь, что сброс памяти ядра или полная свалка памяти выбраны в статье Writing Debugging Information.

Вы можете изменить путь файла сброса, редактировать поле файла Dump. Другими словами, можно изменить путь с %SystemRoot%\Memory.dmp на локальный диск с достаточным диском, например E:\Memory.dmp.

Советы для создания свалок памяти

При сбое и перезапуске компьютера содержимое физической оперативной памяти передается в файл paging, расположенный на разделе, на котором установлена операционная система.

В зависимости от скорости жесткого диска, на котором Windows установлена, сброс более 2 гигабайт (ГБ) памяти может занять длительное время. Даже в лучшем случае, если файл сброса настроен для проживания на другом локальном жестком диске, значительное количество данных будет прочитано и записано на жесткие диски. Это может привести к длительному отключению сервера.

Используйте этот метод для создания полных файлов сброса памяти с осторожностью. В идеале это следует делать только при явном запросе инженера службы поддержки Майкрософт. Отладка файлов сброса ядра или полного файла памяти должна быть последней инстанцией после полного исчерпания всех стандартных методов устранения неполадок.

Вручную создать файл сброса памяти

Использование средства NotMyFault

Если во время проблемы можно войти в систему, можно использовать средство Microsoft Sysinternals NotMyFault. Для этого выполните следующие действия:

Выберите Начните, а затем выберите командную подсказку.

В командной строке запустите следующую команду:

Эта операция создает файл сброса памяти и ошибку остановки D1.

Использование NMI

На некоторых компьютерах нельзя использовать клавиатуру для создания файла аварийного сброса. Например, Hewlett-Packard (HP) BladeSystem из компании Hewlett-Packard разработки управляются с помощью графического пользовательского интерфейса (GUI) на основе браузера. Клавиатура не присоединена к серверу HP BladeSystem.

В этих случаях необходимо создать полный файл аварийного сбоя или файл аварийного сброса ядра с помощью переключателя NMI, который вызывает NMI на системном процессоре.

Для этого выполните следующие действия:

Внимательно следуйте шагам в этом разделе. Неправильное изменение реестра может привести к серьезным проблемам. Перед его изменением необходимо создать реестр для восстановления в случае возникновения проблем.

Этот ключ реестра не требуется для клиентов, работающих Windows 8 и более поздней, или серверов, работающих Windows Server 2012 и более поздней. Настройка этого ключа реестра для более поздних версий Windows не влияет.

В редакторе реестра найдите следующий подкай реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Правой кнопкой мыши CrashControl, указать на Новый, а затем нажмите значение DWORD.

Введите NMICrashDump и нажмите кнопку Ввод.

Щелкните правой кнопкой мыши NMICrashDumpи выберите Изменение.

В поле Значение данных введите 1, а затем выберите ОК.

Поставщики оборудования, такие как HP, IBM и Dell, могут предоставить функцию автоматического восстановления системы (ASR). Эту функцию следует отключить во время устранения неполадок. Например, если функция ASR HP и Compaq включена в BIOS, отключим эту функцию во время устранения неполадок, чтобы создать полный файл Memory.dmp. Для точных действий обратитесь к поставщику оборудования.

Включите переключатель NMI в BIOS или с помощью веб-интерфейса Integrated Lights Out (iLO).

Точные действия см. в справочном руководстве BIOS или обратитесь к поставщику оборудования.

Протестировать этот метод на сервере с помощью коммутатора NMI для создания файла сброса. Вы увидите неисправность 0x00000080 stop.

Если вы хотите запустить NMI в Microsoft Azure с помощью серийной консоли, см. в рубрике Использование серийной консоли для вызовов SysRq и NMI.

Дамп базы данных

Перенос сайта с одного сервера на другой может оказаться непростой задачей для многих пользователей. Это связано с тем, что, помимо обычного перемещения файлов, необходимо также выполнить экспорт и импорт базы данных. В таких случаях используется специальный файл под названием дамп. Поговорим в сегодняшней статье, что это такое и как его сделать.

Что такое дамп базы данных

Дамп (англ. dump – сбрасывать) – файл, включающий в себя содержимое памяти компьютера или базы данных. В нашем случае это файл с расширением .sql. Он содержит особые данные, благодаря которым можно легко воссоздать копию БД.

Копирование базы данных может быть полезно, когда нужно выполнить:

  • Перенос данных на другой хостинг. Не нужно повторно создавать БД и вносить в нее все данные руками. Достаточно создать дамп и импортировать его в новый проект.
  • Резервное копирование. Отличный способ для экспериментов с веб-сайтом или сервером: вносите корректировки в базу данных и не бойтесь, что произойдет сбой. В случае неисправности всегда можно будет все восстановить из дампа.

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

Дамп БД

Создаем дамп базы данных MySQL

Существует несколько способов создания дампов: через консольное окно или с помощью phpMyAdmin. Рассмотрим последовательно каждый из методов, а также попробуем восстановить БД из дампа.

Способ 1: Консольное окно MySQL

Удаленное подключение к хостингу по SSH разрешает работать с информационными хранилищами. Выбор данного протокола обусловлен его высокой безопасностью, так как вся информация передается в зашифрованном виде без возможности перехвата трафика.

Для подключения вы можете воспользоваться такими программами, как PuTTY и WinSCP – они распространяются в бесплатном доступе. Остановимся на первой утилите и посмотрим, как с ее помощью можно сделать дамп базы данных MySQL.

  1. Открываем официальный сайт Putty и загружаем оттуда последнюю версию программы.
  2. Устанавливаем к себе на компьютер PuTTY и запускаем ее. Первым делом переходим в раздел «Connection» и находим там подраздел «Tunnels». В нем изменяем следующие параметры: указываем 336 в строке «Source port» и прописываем localhost:3306 в «Destination». В завершение нажимаем на кнопку «Add» — это действие позволит нам добавить созданный порт.
  3. Переходим в раздел «Sessions» — там вводим свой адрес или домен, в нижней части жмем на «Open».
  4. Вводим логин и пароль для подключения к БД.

Обратите внимание, что если на компьютере функционирует сервер с БД, то соединение через порт 3306 будет некорректно. В таких случаях рекомендуется использовать другие значения, например, 3307, 3308 и так далее.

Теперь мы можем переходить к удаленному администрированию БД: создадим дамп базы данных MySQL. Для этого введем в консоль следующий запрос:

  • -uDataBase — имя базы в формате типа -u[root]
  • -pPasswrd — пароль от базы в формате типа -p[123456]
  • DataBase_NAME — имя БД
  • FileName — название файла

В целях безопасности рекомендуется вообще не использовать логин и пароль. В таком случае команда примет следующий вид:

Для понимания можете взглянуть на пример с использованием пользователя и пароля:

Таким образом будет создан файл WordPressDump.sql, содержащий в себе все нужные данные для точного копирования. Посмотрим, как этот файл импортировать в проект через консоль:

Аналогично подставляем свои данные в команду и в итоге получаем:

Также при импорте мы можем указать кодировку — для этого достаточно добавить ключ default-character-set. В итоге код преобразуется:

Вот такими несложными действиями можно сделать копирование через консольное окно. Теперь давайте «покопаемся» в phpMyAdmin и выполним в нем копирование БД.

Способ 2: Инструмент phpMyAdmin

PhpMyAdmin по умолчанию предустановлен на каждой CMS. Доступ к нему осуществляется через личный кабинет пользователя на хостинге либо через локальный веб-сервер на домашнем ПК.

Подключаемся к phpMyAdmin и экспортируем БД:

как импортировать базу данных в phpMyAdmin

После этого нам будет предложен выбор места сохранения файла. В последующем мы сможем его использовать через вкладку «Импорт». Для этого достаточно загрузить файл и указать подходящую для него кодировку:

В заключение стоит сказать, что дамп базы данных – это незаменимый файл, без которого не обходится ни один серверный переезд. Используйте его для переноса базы на хостинге или с локальной машины, а также для создания резервных копий. Удачи!

Читайте также: