Мне нужно прочитать информацию, код, флаги, адрес и т. Д. Из файла memory.dmp, сгенерированного из Windows BSOD через C ++. Основная идея заключается в том, что информация о состоянии может быть запрошена с удаленного сайта, а одна из запрашиваемых частей информации — это некоторая базовая информация с последнего BSOD, произошедшего на компьютере, поэтому мне нужно открыть файл дампа ядра / памяти через C ++ (Im используя MSVC 2005).
Начни здесь, тогда понять, что с помощью скриптовых команд в WinDBG гораздо проще.
Примечание: вам нужна только WinDBG на анализирующей машине, а не сбойная. Вы извлекаете минидамп и анализируете его внешне. Единственная трудность, с которой вы столкнетесь, — это получение правильных символов — для Windows Microsoft делает их доступными через свои серверы символов, но приложения, вызвавшие сбой, могут не предоставлять нужные вам символы. Если они являются вашими собственными приложениями, вызывающими сбой, получите сервер символов и используйте его.
Я бы сконфигурировал Windows для создания небольших дампов памяти ядра, которые будут включать параметр нужной вам проверки.
На XP это было 64KB на моем Win8.1 x64 это 256KB. Эти файлы хорошо сжимаются. Вы должны быть в состоянии обойтись с zip-файлом размером 10-60 КБ в зависимости от разрядности ОС. Если пропускная способность имеет первостепенное значение для вас, вы можете использовать 7z который сжимает примерно на 50% лучше, чем обычный zip-алгоритм, за счет гораздо более длительного времени сжатия (на 5-6 дольше), но для таких небольших файлов разница во времени ЦП должна быть несущественной.
Если вы не хотите, чтобы ваши пользователи настраивали создание отчетов о дампах, вам нужно установить DWORD
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
до 3 для небольшого дампа ядра программно.
Для объяснения значений см. http://technet.microsoft.com/en-us/library/cc976050.aspx
По умолчанию вы получите небольшой дамп ядра в% SystemRoot% \ MEMORY.DMP.