Why does CodeSiteEx only support Win32 development under BDS 2005, 2006, and Turbo Delphi?
CodeSiteEx's TraceMethod method calls CodeSite's EnterMethod and ExitMethod methods. TraceMethod works by returning a reference to an interface. Since there is no explicit variable to recieve the return value, Delphi creates an implicit one. This goes out of scope at the end of the method, and the object is freed, which calls ExitMethod.
Under Win32, the freeing of the object happens immediately when it goes out of scope. You always know exactly when the ExitMethod will be called, and it will always be before the next CodeSite message has a chance.
With non-deterministic destruction in .NET, there is no way to get TraceMethod to work correctly. Under .NET, the freeing of the object is 'scheduled' on exit, but doesn't actually happen at any particular time. So the ExitMethod messages may appear anywhere in the log after it actually happens, and very possibly after any number of other messages. Not very helpful. Really the exact opposite of what TraceMethod is supposed to accomplish.