1#ifndef wren_debug_h
2#define wren_debug_h
3
4#include "wren_value.h"
5#include "wren_vm.h"
6
7// Prints the stack trace for the current fiber.
8//
9// Used when a fiber throws a runtime error which is not caught.
10void wrenDebugPrintStackTrace(WrenVM* vm);
11
12// The "dump" functions are used for debugging Wren itself. Normal code paths
13// will not call them unless one of the various DEBUG_ flags is enabled.
14
15// Prints a representation of [value] to stdout.
16void wrenDumpValue(Value value);
17
18// Prints a representation of the bytecode for [fn] at instruction [i].
19int wrenDumpInstruction(WrenVM* vm, ObjFn* fn, int i);
20
21// Prints the disassembled code for [fn] to stdout.
22void wrenDumpCode(WrenVM* vm, ObjFn* fn);
23
24// Prints the contents of the current stack for [fiber] to stdout.
25void wrenDumpStack(ObjFiber* fiber);
26
27#endif
28