Open timotheecour opened 3 years ago
repr
for stuff without $
--experimental:strictFuncs
can help to find unwanted mutations.
-d:stressOrc
?.
-d:danger
for JavaScript targets, because in debug mode, it contains too much noise for run-time checking.
{.exportc.}
to skip name manglings of symbols, for debug only.
Styled debug messages to paint bugs red
Debugger to set debug breakpoints
Temporarily mark symbols with {.deprecated.}
to see where is used on the code base.
--expandArc
--expandMacro
not nil
may help with read-from-nil bugs.
{.explain.}
Using stricter types, at least temporarily.
lots of debugging tools can help understand and debugging the compiler or other programs:
stacktraces
--stacktrace
--stackTraceMsgs
-d:nimCompilerStacktraceHints
misc
-d:debug
print data structures
astalgo.debug
instrument compiler
-d:nimDebugUtils
tracing
-d:nimVMDebug
: trace VM code (very verbose, requires recompiling nim)vmutils.vmTrace
: trace VM code (doesn't require recompiling nim, can be switched on/off in user code being traced)--exectrace
: trace regular code, pending https://github.com/nim-lang/Nim/pull/15827 (works but still draft)links