2012-01-14 11 views
16

Estoy investigando un problema de rendimiento con mi aplicación escrita en Delphi 2010. ¿Delphi emite símbolos que Process Explorer puede usar al visualizar los hilos actualmente en ejecución para que pueda ver los nombres de las funciones?¿Puedo emitir símbolos de depuración desde mi aplicación Delphi que Process Explorer puede usar?

He bloqueado el nombre de mi ejecutable, pero puede ver que solo me da la dirección de memoria de la función, y me gustaría tener el nombre de la función resuelta si es posible (como lo hice para ole32. dll y ntdll.dll porque estoy usando el servidor de símbolos MS).

Sé que esto se puede hacer para VC++ applications and WinDbg ... ¿se puede hacer con las aplicaciones Delphi y Process Explorer?

enter image description here

+3

Ver [esta respuesta sobre cómo utilizar map2dbg] (http://stackoverflow.com/a/1240500/9842) –

Respuesta

14

Sí, lo que hay que hacer es asegurarse de que el proyecto está compilado con información de depuración y que el enlazador emite un archivo de mapa detallado (opciones de enlace del proyecto). No estoy seguro, pero también puede que tenga que verificar "incluir símbolos remotos de depuración" en las opciones del enlazador.

Cuando tenga eso, puede usar una utilidad para convertir el mapa al formato dbg que utiliza ProcessExplorer.

Hacemos esto en el trabajo cada vez que necesitamos obtener un seguimiento de pila en un hilo colgado en uno de nuestros servidores de prueba.

utilidad

El Map2Dbg usamos: https://github.com/andremussche/map2dbg

+3

1 yo no sabía sobre esto y lo hará ¡Lo encuentro muy útil, no es que mi software se cuelgue, por supuesto! ;-) –

+5

@DavidHeffernan: por supuesto que no, tampoco la nuestra :-) No se cuelga, ¡simplemente se detiene para reflexionar! –

+0

¿Delphi admite la reflexión ahora, así como RTTI? –

Cuestiones relacionadas