我想在Delphi 2007(Win32)的错误对话框中显示堆栈跟踪.
理想情况下,我喜欢这样的事情:
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
并且输出与IDE中的调用堆栈类似:
MYPROGRAM.SomeFunction
MYPROGRAM.SomeProcedure
MYPROGRAM.MYPROGRAM
:7c817067 kernel32.RegisterWaitForInputIdle + 0x49
我正在开发一个非常大的应用程序,我会定期将ENTIRE调用堆栈记录到当前执行点(不是例外).这里的想法是,我想要一张确切的代码路径的地图,这使我成为我的观点.我一直在使用madExcept,使用jclDebug,虽然我可以获得一些调用堆栈,但我似乎无法获得在应用程序中进行的每个方法/过程/函数调用以显示在日志中.
我在项目中启用了堆栈帧,调试信息等.我甚至尝试在没有包含在调用堆栈中的各个方法上打开堆栈帧无济于事.
我正在努力做甚么可能吗?我真的试图避免在数百万行代码中添加日志代码以便记录代码路径.