Отладочный дамп 32-битного процесса, записанного на 64-битной машине - PullRequest
14 голосов
/ 22 октября 2010

Недавно я получил 64-разрядный аварийный дамп от клиента.
Все наши процессы 32-битные, но на компьютере клиента установлен x64 Server 2008.

Visual Studio (и 2008, и 2010 Express) говорит мне, что мне нужно использовать 64-битную версию MSVSMON.EXE, чего я не могу, потому что у меня нет 64-битной машины.

Я почти уверен, что в WinDbg есть способ сделать это, но я считаю, что WinDbg враждебен.

Есть ли способ отладки 64-разрядного дампа на 32-разрядной машине, предпочтительно с помощью Visual Studio?

Ответы [ 5 ]

11 голосов
/ 20 ноября 2010

Вы должны убедиться, что клиент использует 32-битные инструменты (adplus или DebugDiag) для захвата аварийных дампов для ваших 32-битных процессов.Затем вы можете использовать вашу 32-битную машину для отладки дампов.

http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx

Хотя комментарий Исаламона технически верен, никто не хотел бы выполнять это, поскольку трассировка стека ужасна.*

Сообщите вашему клиенту, что это необходимо, и надейтесь, что он / она сотрудничает.

Если вы не знакомы с анализом дампов, Microsoft всегда рядом с вами, http://support.microsoft.com

2 голосов
/ 08 июня 2017

Я обошел проблему, используя 32-разрядный диспетчер задач ( C: \ Windows \ SysWOW64 \ Taskmgr.exe ) для захвата дампа.

1 голос
/ 06 августа 2014

Я получил отличные результаты, используя советы по переходу в режим x86 с помощью! Wow64exts.sw, как указано здесь:

http://blogs.msdn.com/b/ntdebugging/archive/2008/06/03/how-to-debug-wow64-applications.aspx

Те же цифры здесь:

http://blogs.msdn.com/b/msdnforum/archive/2010/03/14/how-do-i-switch-to-32bit-mode-when-i-use-windbg-to-debug-a-dump-of-a-32bit-application-running-on-an-x64-machine.aspx

И фоновые и связанные с ними команды здесь:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384163(v=vs.85).aspx

Надеюсь, это послужит сборником достойных материалов по этой теме в дополнение к тому, что ужесуществует в этой теме.Спасибо.

1 голос
/ 26 октября 2010

Это Userdump или дамп ядра?Похоже, вы получили системный дамп.Если это так, то вы можете воспользоваться расширением! Wow64exts на windbg и вызвать причину проблемы.

0 голосов
/ 20 апреля 2015

Я согласен с тем, что вы должны правильно получить файл dmp, но недавно провели несколько экспериментов с этим типом неправильно записанного файла dmp.Я использовал WinDbg для исправления SOS.dll, чтобы убрать проверку арки.Я не уверен на 100%, верно ли то, что я получаю, но, по крайней мере, некоторые из них выглядят так ... https://chentiangemalc.wordpress.com/2015/04/17/experimental-use-of-64-bit-dump-of-32-bit-net-process-in-windbg/

...