Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display the call stack in a Delphi Win32 application

I'd like to display a stack trace in an error dialog in Delphi 2007 (Win32).

Ideally, I'd like something like this:

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

And for the output to be like the Call Stack in the IDE:

MYPROGRAM.SomeFunction
MYPROGRAM.SomeProcedure
MYPROGRAM.MYPROGRAM
:7c817067 kernel32.RegisterWaitForInputIdle + 0x49
like image 270
JosephStyons Avatar asked Nov 03 '08 14:11

JosephStyons


1 Answers

madExcept has a method StackTrace (in unit madStackTrace) that does that.

JEDI Code Library offers similar functionality in unit JclDebug.

like image 54
gabr Avatar answered Sep 21 '22 09:09

gabr