enhanced hawkgo to print named variables if -D is given
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-10 20:50:20 +09:00
parent 547846a055
commit 0bb30e716c
3 changed files with 62 additions and 11 deletions

View File

@@ -298,25 +298,25 @@ static void dprint_return (hawk_rtx_t* rtx, hawk_val_t* ret)
if (hawk_rtx_isnilval(rtx, ret))
{
hawk_logfmt (hawk, HAWK_LOG_STDERR,HAWK_T("[RETURN] - ***nil***\n"));
hawk_logfmt(hawk, HAWK_LOG_STDERR,HAWK_T("[RETURN] - ***nil***\n"));
}
else
{
str = hawk_rtx_valtooocstrdup(rtx, ret, &len);
if (str == HAWK_NULL)
{
hawk_logfmt (hawk, HAWK_LOG_STDERR,HAWK_T("[RETURN] - ***OUT OF MEMORY***\n"));
hawk_logfmt(hawk, HAWK_LOG_STDERR,HAWK_T("[RETURN] - ***OUT OF MEMORY***\n"));
}
else
{
hawk_logfmt (hawk, HAWK_LOG_STDERR, HAWK_T("[RETURN] - [%.*js]\n"), len, str);
hawk_logfmt(hawk, HAWK_LOG_STDERR, HAWK_T("[RETURN] - [%.*js]\n"), len, str);
hawk_freemem(hawk_rtx_gethawk(rtx), str);
}
}
hawk_logfmt (hawk, HAWK_LOG_STDERR, HAWK_T("[NAMED VARIABLES]\n"));
hawk_htb_walk (hawk_rtx_getnvmap(rtx), print_awk_value, rtx);
hawk_logfmt (hawk, HAWK_LOG_STDERR, HAWK_T("[END NAMED VARIABLES]\n"));
hawk_logfmt(hawk, HAWK_LOG_STDERR, HAWK_T("[NAMED VARIABLES]\n"));
hawk_htb_walk(hawk_rtx_getnvmap(rtx), print_awk_value, rtx);
hawk_logfmt(hawk, HAWK_LOG_STDERR, HAWK_T("[END OF NAMED VARIABLES]\n"));
}
#if defined(ENABLE_CALLBACK)

View File

@@ -4,6 +4,8 @@ import "hawk"
import "flag"
import "fmt"
import "io"
//import "net/http"
//import _ "net/http/pprof"
import "os"
import "path/filepath"
import "runtime"
@@ -99,6 +101,9 @@ func main() {
var fs_idx int = -1
var err error
// for profiling
//go http.ListenAndServe("0.0.0.0:6060", nil)
debug.SetGCPercent(100) // enable normal GC
if parse_args_to_config(&cfg) == false { os.Exit(99) }
@@ -221,8 +226,20 @@ func main() {
}
if cfg.show_extra_info {
var named_vars map[string]*hawk.Val
var vn string
var vv *hawk.Val
fmt.Printf("[RETURN] - [%v]\n", retv.String())
// TODO: print global variables and values
fmt.Printf("NAMED VARIABLES]\n")
named_vars = make(map[string]*hawk.Val)
rtx.GetNamedVars(named_vars)
for vn, vv = range named_vars {
fmt.Printf("%s = %s\n", vn, vv.String())
}
fmt.Printf("END OF NAMED VARIABLES]\n")
}
}
@@ -233,7 +250,8 @@ func main() {
runtime.GC()
runtime.Gosched()
// time.Sleep(1000 * time.Millisecond) // give finalizer time to print
//time.Sleep(100000 * time.Millisecond)
return
oops: