Как проанализировать файл дампа из файла Delphi DLL? - PullRequest
18 голосов
/ 06 августа 2009

Я инженер по эскалации продукта, использующего код C # и Delphi 2006.

В большинстве случаев проблемы C # отлаживаются с WinDbg , а проблемы Delphi 2006 с EurekaLog .

Но когда проблема связана с использованием памяти Delphi, EurekaLog не дает достаточно информации для ее устранения, и единственное, что у меня есть для отладки, это файл полного дампа памяти.

Я не могу (или не знаю, как) загрузить файл символов в WinDbg, потому что это файл .map, а не файл .pdb.

Итак, мои вопросы:

  • Как загрузить символы из файла .map в WinDbg? (Преобразование .map в .pdb или другое.)

  • Существует ли инструмент для анализа файла дампа для приложения Delphi?

Ответы [ 3 ]

17 голосов
/ 06 августа 2009

Для преобразования из карты в символы Dbg:
- Получить Map2Dbg.exe из http://code.google.com/p/map2dbg/
- Поместите Map2dbg в ту же папку, что и YourApp.exe и его файл карты
- Выполнить: map2dbg.exe YourApp.exe

Вы должны получить файл YourApp.dbg для использования с инструментами Microsoft….

3 голосов
/ 13 июня 2012

Помимо tds2pdb (см. Мой комментарий к map2dbg), вы также можете использовать мой просмотрщик мини-дампов на программах Delphi: https://github.com/andremussche/asmprofiler/blob/master/Source/MiniDumpReader/ViewMinidump.exe.

Тогда вам не нужно конвертировать в .dbg или в .pdb, но он непосредственно читает различные файлы отладки Delphi (.map, .tds / .td32 и j.dbg).

1 голос
/ 01 апреля 2018

Последняя версия инструмента cv2pdb может конвертировать файлы DBG, созданные с помощью map2dbg, в файлы PDB.

Итак, если вы ранее делали свои DBG такими: map2dbg App.exe

Просто добавьте эту команду потом: cv2pdb -s. App.exe

-s. Параметр необходим для отделения имен методов от имен классов точкой.

cv2pdb, созданный для Win32 на текущих источниках, может быть загружен с здесь .

...