Pregunta

La clase Exception en Delphi 2009 recibió varias características nuevas. Varios de ellos están relacionados con la obtención de un stacktrace:

  • propiedad StackTrace: cadena leer GetStackTrace;
  • propiedad StackInfo: Puntero leer FStackInfo;
  • clase var GetExceptionStackInfoProc: función (P: PExceptionRecord): Puntero;
  • clase var GetStackInfoStringProc: función (Información: Puntero): cadena ;
  • clase var CleanUpStackInfoProc: procedimiento (Información: Puntero);

¿Alguien ha usado estos para obtener un seguimiento de la pila todavía? Sí, sé que hay otras formas de obtener un seguimiento de la pila, pero si se admite de forma nativa en la clase Excepción, preferiría aprovechar eso.

Actualización: Hay un interés publicación de blog sobre esto . Lo cubre con mucha profundidad.

¿Fue útil?

Solución

Para mí, esto parece un marco en el que puede conectar su propio seguimiento de pila. Supongo que esto podría usarse internamente en el IDE con JCLDebug. Quizás esté destinado a que los usuarios puedan suministrar madExcept u otra implementación.

Otros consejos

No, todavía no los he usado (actualmente estoy usando madExcept para eso, y también hice algunos experimentos con JclDebug), ¡pero gracias por el consejo!

TOndrej es correcto. Las nuevas características agregadas a la clase Exception son para que terceros conecten su propio código de seguimiento de pila en el RTL. La implementación predeterminada de la clase Exception no produce sus propios rastros de pila.

Te recomendamos mirar MadExcept. No solo proporciona un manejo excelente de las excepciones no controladas (captura de pantalla, correo electrónico, etc.) sino que tiene un buen conjunto de rutinas invocables para devolverle un rastro de pila que puede usar en casi cualquier lugar. Bri

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top