Skip to content

GodotJS Debugging

ialex32x edited this page Feb 7, 2025 · 1 revision

Logging

All logging levels are defined in jsb_log_severity.def.h:

  • VeryVerbose: very trivial messages (omitted by default even if JSB_DEBUG is on)
  • Verbose: trivial messges (will not output in the editor panel)
  • Debug: not important, also used by console.debug
  • Info: general level, also used by console.info
  • Log: used by console.log
  • Trace: used by console.trace, with stacktrace anyway
  • Warning: used by console.warn
  • Error: used by console.error, unexpected but not critical errors
  • Assert: used by console.assert, print only if assertion failed
  • Fatal: critial errors

By default, VeryVerbose is omitted at compile-time. You can change it in jsb.config.h by setting JSB_MIN_LOG_LEVEL to VeryVerbose.
Verbose messages will be displayed only if the --verbose flag is set on the command line for the godot executable, and they will appear exclusively in the console (launch from IDE, or start godot from the command line).

logging_01

All messages start with a category name that indicates where they are originated:

  • JS: messages from JS scripts (all console.* calls)
  • jsb: all general messages in GodotJS
  • JSWorker: messages from GodotJS worker implementation
  • JSDebugger: messages from GodotJS debugger bridge
  • JSProcess: sub-process spawned in GodotJS (tsc for instance)
  • JSExporter: messages from the export plugin for packaging
  • jsc: JavaScriptCore bridge implementation
  • quickjs: QuickJS bridge implementation
  • web: Web bridge implementation

Natvis

TODO