STACKTRACE("e0957136-fed3-414d-80b9-8bbf84f3fa03");
With the GUID, I could see where functions moved as they were refactored.
I would write out the GUID to a thread-local file handle, along with a time-stamp, and an "enter" or "exit" when an RAII object left the stack.
Then I could retrospectively debug after running my program. I could see the callstack, and step through in time. I would walk my source and record GUID-to-filename/linenumber in a map. Then I could dump out a Visual Studio output that had the file name and line number, and execution time... allowing me to step forward and back through the execution.
Stone knives and bearskins.