WinDbg - отладка смешанного x64 управляемого / неуправляемого кода

Я использую WinDbg (Native x64 - НЕ Itanium) для отладки x64 (неуправляемого) приложения, которое загружает обе управляемые неуправляемые библиотеки DLL.

Я пытаюсь установить точку останова в одной из неуправляемых библиотек DLL. Когда достигается точка останова, и я перехожу, отображаемые инструкции полностью отличаются от того, какими они должны быть. Я проверил с двумя различными дизассемблерами, что WinDbg не отображает правильную дизассемблирование, когда я перехожу.

При подключении к приложению я получаю следующую строку:

ModLoad: 00000000`XXXXXXXX 00000000`YYYYYYYY  C:\MyDLL.DLL

Я настроил адреса в двух дизассемблерах так, чтобы они отражали базовый адрес XXXXXXXX.

В чем может быть проблема?

2 ответа

Uf modname!FuncName возвращает правильные результаты? Иногда вы можете обмануть WinDbg, если разберете / остановите в странных местах. Помните, что x86/x64 - это набор команд переменной ширины, поэтому, если вы начнете читать в середине инструкции, дизассемблер будет сбит с толку.

Где-то я заметил информацию, что это может быть связано с неправильной точкой входа в вашу DLL. Но я понятия не имею, что делать с этой информацией (я новичок).

Другие вопросы по тегам