2012-01-14 11 views
16

Badam problem z wydajnością w mojej aplikacji napisanej w Delphi 2010. Czy Delphi emituje symbole, które może używać Process Explorer podczas przeglądania aktualnie uruchomionych wątków, więc widzę nazwy funkcji?Czy mogę emitować symbole debugowania z mojej aplikacji Delphi, z których może korzystać Eksplorator procesów?

Zablokowałem nazwę mojego pliku wykonywalnego, ale widzisz, że daje mi tylko adres pamięci tej funkcji i chciałbym mieć nazwę funkcji rozwiązanej, jeśli to możliwe (jak mam dla ole32. dll i ntdll.dll, ponieważ używam serwera symboli MS).

Wiem, że można to zrobić dla VC++ applications and WinDbg ... Czy można to zrobić z aplikacjami Delphi i Process Explorer?

enter image description here

+3

patrz [tę odpowiedź na temat korzystania map2dbg] (http://stackoverflow.com/a/1240500/9842) –

Odpowiedz

14

Tak, co trzeba zrobić, to upewnić się, że projekt jest skompilowany z informacji debugowania i że łącznik emituje szczegółowy plik mapy (opcje Link Project). Nie jestem pewien, ale konieczne może być również zaznaczenie "włącz zdalne symbole debugowania" w opcjach linkera.

Po wykonaniu tej czynności można użyć narzędzia do konwersji mapy do formatu dbg używanego przez ProcessExplorer.

Robimy to w pracy, gdy potrzebujemy uzyskać ślad stosu na zawieszonym wątku na jednym z naszych testservers.

narzędzie

Map2Dbg używamy: https://github.com/andremussche/map2dbg

+3

+1 Nie wiedziałem o tym i będzie uważam, że jest to bardzo przydatne, nie, że moje oprogramowanie nigdy się nie zawiesza! ;-) –

+5

@DavidHeffernan: oczywiście, że nie, nie ma też naszego :-) Nie zawiesza się, po prostu zatrzymuje się na refleksję! –

+0

Delphi obsługuje teraz odbicie, a także RTTI? –

Powiązane problemy