For stack tracing in x64 I'm using the OS APIs. Sometimes they fail, unfortunately, especially if you ask the call stack of your own thread. You can work around the issue by raising a dummy exception inside of a "try..except" block, and then in the except..end block call madExcept.GetCrashStackTrace. That usually works in both 32bit and 64bit. See for more information about GetCrashStackTrace:
madshi wrote:Sometimes they fail, unfortunately, especially if you ask the call stack of your own thread. You can work around the issue by raising a dummy exception
I've been using this for detailed Log file entries without exceptions in Win32, are you saying this isn't working outside of raising an exception in Win64?
I think it depends on the OS, but yes, on some OSs it won't work properly without raising a dummy exception. It's a "hidden" exception, though, because you catch it yourself in a try..except block. So while the debugger will stop and complain (which is annoying), at runtime it doesn't harm in any way. You could even check if you're running in a debugger and then skip the exception.