Limits
- Some calls are missing from the trace. A call the game’s compiler folded into its caller before the trace started is not traced. A caller that ends by handing over to another method, called a tail call, disappears from the call stack, so its
[from X]can be missing. (The first is a call the JIT inlined into a caller compiled before the trace started.) - The values a call changed through
reforoutare not shown. The trace shows the arguments as they were when the call began. - Generic methods are not traced.
- Reading the loading flag in a snapshot can clear its pending flag. This is the same as the framework’s own reads do, so the snapshot does not change what your mod sees.
- A line is written when its call ends. So the calls nested inside a call print before the call that contains them.
- The log file is cut at 4 MB. When it reaches 4 MB the framework moves it to
ObenseuerCore.debug.log.1and starts a new one. At the 1000 lines a second cap, 4 MB lasts about 40 seconds if lines average about 100 bytes. Longer lines fill it sooner. The old.1file is replaced each time.