Задний план
В моей программе Java произошел сбой, и я получил отчет о сбое Java. Однако сбой произошел в нативном коде JNI, поэтому журнал сбоев не очень полезен, лучше иметь дамп сбоя. Единственная полезная информация — это смещение в моей родной DLL.
Выдержка из отчета о сбое Java:
C [test.dll+0x1032]
Поскольку сбой воспроизвести нелегко, я не могу создать файл .dmp, но все же хочу выяснить, какой метод был вызван.
Запрос инструмента
Я ищу инструмент, который загрузит произвольный файл PDB, я ввожу смещение, и инструмент преобразует его в имя метода + смещение внутри метода.
Input: test.dll+0x1032
Output: test.dll!mymethod+0x2A
Требования
Я узнал, что это можно сделать с помощью WinDbg (часть инструментов отладки для Windows ) следующим образом:
.symfix;.reload
для загрузки PDB, .sympath+ <path>
если вам нужны собственные символыln <address>
для разрешения имени метода (например ln test.dll+0x1032
)Это ответ, потому что: