Afficher la pile des appels dans une application Delphi Win32
J'aimerais afficher une trace de la pile dans un dialogue d'erreur dans Delphi 2007 (Win32).
Idéalement, j'aimerais quelque chose comme ceci:
try
//do something
except on e : exception do
begin
//rollback a transaction or whatever i need to do here
MessageDlg('An error has occurred!' + #13#10 +
e.Message + #13#10 +
'Here is the stack trace:' + #13#10 +
e.StackTrace,mtError,[mbOK],0);
end; //except
end; /try-except
Et pour la sortie à l'instar de la Pile d'Appel dans l'IDE:
MYPROGRAM.SomeFunction
MYPROGRAM.SomeProcedure
MYPROGRAM.MYPROGRAM
:7c817067 kernel32.RegisterWaitForInputIdle + 0x49
source d'informationauteur JosephStyons
Vous devez vous connecter pour publier un commentaire.
madExcept a une méthode StackTrace (dans l'unité madStackTrace) qui le fait.
JEDI Bibliothèque de Code offre des fonctionnalités similaires dans l'unité JclDebug.
Nous utilisons Exceptionnel De La Magie et cela fonctionne vraiment bien pour nous. Avec elle, vous pouvez faire quelque chose comme ceci:
Cela donne une assez détaillée de la pile des appels:
Exceptionnel de la Magie est seulement 25 $sans la source, de sorte qu'il est relativement bon marché. Espérons que ça aide!
Vous pourriez être intéressé par cet article: "Nouvelle classe d'Exception dans Delphi 2009 et au-dessus".