Как проанализировать файл дампа из DLL-файла Delphi?

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

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

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

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

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

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

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


person Yann    schedule 06.08.2009    source источник


Ответы (3)


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

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

person Francesca    schedule 06.08.2009
comment
Более новая версия WinDbg лучше (или работает только?) С файлами PDB, в том же проекте map2dbg находится tds2pdb, расположенный: code.google.com/p/map2dbg/downloads/detail?name=tds2pdb102.zip. - person André; 13.06.2012

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

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

person André    schedule 13.06.2012
comment
Ваша ссылка на ViewMinidump.exe дает ошибку 404. - person Jan Goyvaerts; 10.09.2019

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

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

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

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

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

person Alex Whiter    schedule 01.04.2018