Reminder to self: when you get Unknown function at TMethodImplementationIntercept
in a Delphi stack trace from the Exception.StackTrace property:
Copy the .MAP or .TDS files to directory of your EXE.
Via:
- [WayBack] 0006512: jcl-2.7.0.5676/Delphi XE7: StackTrackExample not working – Project JEDI – Issue Tracker
- [WayBack] Problem using portable viewer
The Exception.StackTrace was introduced in Delphi 2009 that extended these [WayBack] Exception Members:
- [WayBack] Exception.StackTrace Property services by this method:
- [WayBack] Exception.StackInfo Property filled by this method:
- a
- called by [WayBack] Exception.Destroy Destructor
- [WayBack] Exception.RaisingException Method
- [WayBack] Exception.SetInnerException Method
- Fields where you can put hooks in; if there is no hook in place, they won’t be used:
- [WayBack] Exception.GetExceptionStackInfoProc Field
GetExceptionStackInfoProc: function (P: PExceptionRecord): Pointer;
- This function is called to return an opaque data structure that contains stack information for the given exception information record. This function will be called when the exception is about to be raised or if this is an external exception such as an Access Violation, called soon after the object is created.
- [WayBack] Exception.CleanUpStackInfoProc Field
CleanUpStackInfoProc: procedure (Info: Pointer);
- This function is called when the destructor is called to clean up any data associated with the given opaque data structure.
- [WayBack] Exception.GetStackInfoStringProc Field
GetStackInfoStringProc: function (Info: Pointer): string;
- This function is called to return a string representation of the opaque data structure returned by GetExceptionStackInfoProc
- [WayBack] Exception.GetExceptionStackInfoProc Field
TMethodImplementationIntercept was introduced in the System.Rtti unit of Delphi XE6:
–jeroen
Example code: