package vm
import (
"fmt"
"io"
"github.com/goccy/go-json/internal/encoder"
)
func DebugRun (ctx *encoder .RuntimeContext , b []byte , codeSet *encoder .OpcodeSet ) ([]byte , error ) {
defer func () {
var code *encoder .Opcode
if (ctx .Option .Flag & encoder .HTMLEscapeOption ) != 0 {
code = codeSet .EscapeKeyCode
} else {
code = codeSet .NoescapeKeyCode
}
if wc := ctx .Option .DebugDOTOut ; wc != nil {
_, _ = io .WriteString (wc , code .DumpDOT ())
wc .Close ()
ctx .Option .DebugDOTOut = nil
}
if err := recover (); err != nil {
w := ctx .Option .DebugOut
fmt .Fprintln (w , "=============[DEBUG]===============" )
fmt .Fprintln (w , "* [TYPE]" )
fmt .Fprintln (w , codeSet .Type )
fmt .Fprintf (w , "\n" )
fmt .Fprintln (w , "* [ALL OPCODE]" )
fmt .Fprintln (w , code .Dump ())
fmt .Fprintf (w , "\n" )
fmt .Fprintln (w , "* [CONTEXT]" )
fmt .Fprintf (w , "%+v\n" , ctx )
fmt .Fprintln (w , "===================================" )
panic (err )
}
}()
return Run (ctx , b , codeSet )
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .