2015-08-23 4 views
0

У меня есть minigame.exe, который разбивается в какой-то момент внутри игры. Он не показывает сообщение об ошибке, и он просто говорит «Не реагировать». Я использую Win 7. Я хочу определить точку сбоя и попытаться исправить проблему с играми. Я думаю, проблема может быть вызвана из-за конкретной DLL, импортируемой исполняемым файлом. Однако я не знаю, как узнать эту конкретную сборочную линию и попытаться исправить исполняемый файл с помощью OllyDBG.Исправление исполняемого файла во избежание сбоя

ответ

1

С предоставленной информацией для этого ответа потребуется полный стиль учебника, который считается слишком широким для этого сайта. Но первый шаг, выяснение того, какой тип аварии и где это происходит, можно объяснить.

Я буду использовать WinDbg в качестве отладчика, так как я не знаком с OllyDbg. Это часть Debugging Tools for Windows, и она свободно доступна. Установите версии x64 или x86, соответствующие minigame.exe.

  1. Start WinDbg, используйте правильный разрядность
  2. Run minigame.exe под WinDbg (File/Open executable). Он остановится на начальной точке останова.
  3. Set up the symbols, не менее .symfix c:\debug\symbols и .reload. Это приведет к загрузке информации, необходимой для создания вызова.
  4. Продолжить запуск приложения с g
  5. Воспроизведите проблему/подождать, пока он не падает
  6. Когда WinDbg останавливается,
    • создать аварийный дамп с .dump /ma c:\debug\minigame.dmp, так что вы можете проанализировать его позже, например, для того, чтобы задавать вопросы здесь, чтобы вам не пришлось повторно воспроизводить ошибку.
    • получить информацию об исключении с .exr -1
    • переключателя к потоку, который вызвал исключение с ~#s
    • взглядом на стеке вызовов с k

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

+0

Нет ли способа сделать это в x64_DBG? Когда я запускаю WinDBG64, он говорит, что debugee занят, и он также не показывает окна для регистров, памяти и ... Даже открытие регистров окна не отображает регистры. Это не удобный для пользователя или даже удобный отладчик для работы. – FreeMind

+0

Да, WinDbg довольно ориентирован на команды. Его графический интерфейс на самом деле не интуитивно понятен, ни команды. Но это самый мощный отладчик. Вы можете сделать то же самое в OllyDbg, но, как я уже сказал, я не знаю, как его использовать. –

+0

Доступен ли minigame.exe? Возможно, это относится к методам отладки –