Потерянный в WindBG с 64-битным сбросом на 32-битной машине

StackOverflow https://stackoverflow.com/questions/1342099

  •  20-09-2019
  •  | 
  •  

Вопрос

Я новичок в WindBG и получил этот дамп из папки WER ReportQueue на 64-битном сервере Windows 2008. Мне нужно изучить дамп, и я хочу сделать это на моей машине разработчика, на которой я установил инструменты отладки для пакета Windows. Когда я пытаюсь загрузить SOS, я получил следующую ошибку, которую я никогда раньше не видел:

0:035> .loadby sos mscorwks
The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos) failed, Win32 error 126
    "The specified module could not be found."
Please check your debugger configuration and/or network access.

Моя машина запускает 32-битную Windows 7, которая, очевидно, не имеет папки Framework64.

Мне нужен совет, указывающий мне в правильном направлении здесь. Что мне нужно сделать, если я хочу осмотреть дамп с 64-битного процесса на 32-битной машине? Можно ли сделать это?

Большое спасибо заранее!

Это было полезно?

Решение

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

Другие советы

Проблема не в том, что вы можете проанализировать 64-разрядную свалку с 32-битного WindBG, который вы можете. Из файла справки WindBG:

Если вы анализируете файл дампа, и если файл дампа был сделан в Windows XP или более поздней версии Windows, вы можете использовать либо 32-разрядный пакет, либо пакет x64. (Не важно, является ли файл дампа файлом дампа пользовательского режима или файлом дампа режима ядра, и не важно, был ли файл дампа на основе x86 или на платформе на основе X64.)

Если вы анализируете файл дампа, и если файл дампа был сделан в операционной системе Windows 2000, вам следует использовать 32-битный пакет. (Не важно, является ли файл дампа файлом дампа пользователя или файлом дампа режима ядра)

Если вы выполняете отладку в прямом эфире режима ядра, и если целевой компьютер запускает Windows XP или более позднюю версию Windows, вы можете использовать 32-разрядную пакет или пакет X64. (Эта ситуация применяется как к целям на основе X86, так и к X64.)

Если вы выполняете отладку в режиме реального времени в прямом эфире, и если целевой компьютер запускает Windows 2000, вам следует использовать 32-битный пакет.

Если вы выполняете отладку в режиме реального времени в прямом эфире, используйте пакет X64 для отладки WOW64 с 64-битным и 32-битным кодом. Чтобы отлаживать другие цели, используйте 32-битный отладчик для отладки 32-разрядного кода.

В чем проблема? Здесь вы пытаетесь загрузить 64-битное расширение для анализа проблемы. Невозможно загрузить 64-битные расширения на 32-битный WindBG. Вопрос будет тогда, будет ли 32-разрядная версия 64-битного анализа SOS, можете ли вы заставить WindBG использовать 32-битный SOS?

Вы можете заставить конкретную версию SOS загрузить с помощью

. загрузка в соответствии с http://msdn.microsoft.com/en-us/library/bb190764.aspx

Однако я ожидаю, что 32-разрядная версия не будет работать для анализа 64-битного процесса, хотя не пробовал это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top