2012-01-14 11 views
16

Sto indagando su un problema di prestazioni con la mia applicazione scritta in Delphi 2010. Delphi emette simboli che Process Explorer possono utilizzare quando si visualizzano i thread attualmente in esecuzione in modo che possa vedere i nomi delle funzioni?Posso emettere i simboli di debug dall'applicazione Delphi che Process Explorer può usare?

Ho bloccato il nome del mio eseguibile, ma è possibile vederlo solo mi fornisce l'indirizzo di memoria della funzione, e mi piacerebbe avere il nome della funzione risolta se possibile (come ho per ole32. dll e ntdll.dll perché sto usando il server dei simboli MS).

So che questo può essere fatto per VC++ applications and WinDbg ... può essere fatto con applicazioni Delphi e Process Explorer?

enter image description here

+3

Sede [questa risposta su come utilizzare map2dbg] (http://stackoverflow.com/a/1240500/9842) –

risposta

14

Yep, quello che dovete fare è assicurarsi che il progetto è compilato con informazioni di debug e che il linker emette un file di mappa dettagliata (opzioni di collegamento del progetto). Non sei sicuro, ma potresti anche dover controllare "include i simboli di debug remoto" nelle opzioni del linker.

In tal caso, è possibile utilizzare un'utilità per convertire la mappa nel formato dbg utilizzato da ProcessExplorer.

Facciamo questo al lavoro ogni volta che è necessario ottenere una traccia stack su un thread appeso su uno dei nostri server di test.

Il Map2Dbg utility che usiamo: https://github.com/andremussche/map2dbg

+3

+1 non sapevo di questo e sarà trovo molto utile, non che il mio software si blocca, ovviamente !! ;-) –

+5

@DavidHeffernan: certo che no, neanche i nostri :-) Non si blocca, si ferma semplicemente per riflettere! –

+0

Delphi supporta ora la riflessione e anche RTTI? –

Problemi correlati