From 9742a8317f66cc2802b3d92456ec0516a6de8c79 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 2 Aug 2019 10:09:29 +0100 Subject: Dukky: Add and utilise a jserrors category Normal, and verbose logging will now also log all JS errors in order that we stand a chance of debugging things more easily when testing. Signed-off-by: Daniel Silverstone --- Makefile.config.example | 4 ++-- Makefile.defaults | 4 ++-- content/handlers/javascript/duktape/dukky.c | 8 ++++---- utils/log.c | 1 + utils/log.h | 1 + 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Makefile.config.example b/Makefile.config.example index 9b461f57d..988fd0ac8 100644 --- a/Makefile.config.example +++ b/Makefile.config.example @@ -45,7 +45,7 @@ # override NETSURF_LOG_LEVEL := DEBUG ### To change the compiled in default log, change this -# override NETSURF_DEFAULT_LOG_FILTER := level:WARNING +# override NETSURF_BUILTIN_LOG_FILTER := "(level:WARNING || cat:jserrors)" ### To change the compiled in *verbose* log, change this -# override NETSURF_DEFAULT_VERBOSE_FILTER := level:VERBOSE +# override NETSURF_BUILTIN_VERBOSE_FILTER := "(level:VERBOSE || cat:jserrors)" diff --git a/Makefile.defaults b/Makefile.defaults index cebd41cf8..12c83a11d 100644 --- a/Makefile.defaults +++ b/Makefile.defaults @@ -84,10 +84,10 @@ NETSURF_USE_NSLOG := AUTO # Valid options are: DEEPDEBUG, DEBUG, VERBOSE, INFO, WARNING, ERROR, CRITICAL NETSURF_LOG_LEVEL := INFO # The log filter set during log initialisation before options are available -NETSURF_BUILTIN_LOG_FILTER := level:WARNING +NETSURF_BUILTIN_LOG_FILTER := "(level:WARNING || cat:jserrors)" # The log filter set during log initialisation before options are available # if the logging level is set to verbose -NETSURF_BUILTIN_VERBOSE_FILTER := level:VERBOSE +NETSURF_BUILTIN_VERBOSE_FILTER := "(level:VERBOSE || cat:jserrors)" # Enable stripping the NetSurf binary # Valid options: YES, NO diff --git a/content/handlers/javascript/duktape/dukky.c b/content/handlers/javascript/duktape/dukky.c index dcee8c55c..4dc97aac6 100644 --- a/content/handlers/javascript/duktape/dukky.c +++ b/content/handlers/javascript/duktape/dukky.c @@ -761,7 +761,7 @@ static void dukky_dump_error(duk_context *ctx) /* stack is ..., errobj */ duk_idx_t stacktop = duk_get_top(ctx); if (!duk_is_error(ctx, -1)) { - NSLOG(dukky, INFO, "Uncaught non-Error derived error in JS: %s", duk_safe_to_string(ctx, -1)); + NSLOG(jserrors, WARNING, "Uncaught non-Error derived error in JS: %s", duk_safe_to_string(ctx, -1)); } else { #define GETTER(what) \ if (duk_has_prop_string(ctx, stacktop - 1, what)) { \ @@ -781,11 +781,11 @@ static void dukky_dump_error(duk_context *ctx) GETTER("fileName"); GETTER("lineNumber"); GETTER("stack"); - NSLOG(dukky, DEBUG, "Uncaught error in JS: %s: %s", + NSLOG(jserrors, DEBUG, "Uncaught error in JS: %s: %s", duk_safe_to_string(ctx, -5), duk_safe_to_string(ctx, -4)); - NSLOG(dukky, DEBUG, " was at: %s line %s", + NSLOG(jserrors, DEBUG, " was at: %s line %s", duk_safe_to_string(ctx, -3), duk_safe_to_string(ctx, -2)); - NSLOG(dukky, DEBUG, " Stack trace: %s", + NSLOG(jserrors, DEBUG, " Stack trace: %s", duk_safe_to_string(ctx, -1)); #undef GETTER } diff --git a/utils/log.c b/utils/log.c index 2168e646b..68b188e0f 100644 --- a/utils/log.c +++ b/utils/log.c @@ -100,6 +100,7 @@ NSLOG_DEFINE_CATEGORY(schedule, "Scheduler"); NSLOG_DEFINE_CATEGORY(fbtk, "Framebuffer toolkit"); NSLOG_DEFINE_CATEGORY(layout, "Layout"); NSLOG_DEFINE_CATEGORY(dukky, "Duktape JavaScript Binding"); +NSLOG_DEFINE_CATEGORY(jserrors, "JavaScript error messages"); static void netsurf_render_log(void *_ctx, diff --git a/utils/log.h b/utils/log.h index 24832c0b4..02a886c01 100644 --- a/utils/log.h +++ b/utils/log.h @@ -85,6 +85,7 @@ NSLOG_DECLARE_CATEGORY(schedule); NSLOG_DECLARE_CATEGORY(fbtk); NSLOG_DECLARE_CATEGORY(layout); NSLOG_DECLARE_CATEGORY(dukky); +NSLOG_DECLARE_CATEGORY(jserrors); #else /* WITH_NSLOG */ -- cgit v1.2.3