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 <dsilvers@digital-scurf.org>
This commit is contained in:
parent
6683818c18
commit
9742a8317f
|
@ -45,7 +45,7 @@
|
||||||
# override NETSURF_LOG_LEVEL := DEBUG
|
# override NETSURF_LOG_LEVEL := DEBUG
|
||||||
|
|
||||||
### To change the compiled in default log, change this
|
### 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
|
### 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)"
|
||||||
|
|
|
@ -84,10 +84,10 @@ NETSURF_USE_NSLOG := AUTO
|
||||||
# Valid options are: DEEPDEBUG, DEBUG, VERBOSE, INFO, WARNING, ERROR, CRITICAL
|
# Valid options are: DEEPDEBUG, DEBUG, VERBOSE, INFO, WARNING, ERROR, CRITICAL
|
||||||
NETSURF_LOG_LEVEL := INFO
|
NETSURF_LOG_LEVEL := INFO
|
||||||
# The log filter set during log initialisation before options are available
|
# 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
|
# The log filter set during log initialisation before options are available
|
||||||
# if the logging level is set to verbose
|
# 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
|
# Enable stripping the NetSurf binary
|
||||||
# Valid options: YES, NO
|
# Valid options: YES, NO
|
||||||
|
|
|
@ -761,7 +761,7 @@ static void dukky_dump_error(duk_context *ctx)
|
||||||
/* stack is ..., errobj */
|
/* stack is ..., errobj */
|
||||||
duk_idx_t stacktop = duk_get_top(ctx);
|
duk_idx_t stacktop = duk_get_top(ctx);
|
||||||
if (!duk_is_error(ctx, -1)) {
|
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 {
|
} else {
|
||||||
#define GETTER(what) \
|
#define GETTER(what) \
|
||||||
if (duk_has_prop_string(ctx, stacktop - 1, 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("fileName");
|
||||||
GETTER("lineNumber");
|
GETTER("lineNumber");
|
||||||
GETTER("stack");
|
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));
|
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));
|
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));
|
duk_safe_to_string(ctx, -1));
|
||||||
#undef GETTER
|
#undef GETTER
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,6 +100,7 @@ NSLOG_DEFINE_CATEGORY(schedule, "Scheduler");
|
||||||
NSLOG_DEFINE_CATEGORY(fbtk, "Framebuffer toolkit");
|
NSLOG_DEFINE_CATEGORY(fbtk, "Framebuffer toolkit");
|
||||||
NSLOG_DEFINE_CATEGORY(layout, "Layout");
|
NSLOG_DEFINE_CATEGORY(layout, "Layout");
|
||||||
NSLOG_DEFINE_CATEGORY(dukky, "Duktape JavaScript Binding");
|
NSLOG_DEFINE_CATEGORY(dukky, "Duktape JavaScript Binding");
|
||||||
|
NSLOG_DEFINE_CATEGORY(jserrors, "JavaScript error messages");
|
||||||
|
|
||||||
static void
|
static void
|
||||||
netsurf_render_log(void *_ctx,
|
netsurf_render_log(void *_ctx,
|
||||||
|
|
|
@ -85,6 +85,7 @@ NSLOG_DECLARE_CATEGORY(schedule);
|
||||||
NSLOG_DECLARE_CATEGORY(fbtk);
|
NSLOG_DECLARE_CATEGORY(fbtk);
|
||||||
NSLOG_DECLARE_CATEGORY(layout);
|
NSLOG_DECLARE_CATEGORY(layout);
|
||||||
NSLOG_DECLARE_CATEGORY(dukky);
|
NSLOG_DECLARE_CATEGORY(dukky);
|
||||||
|
NSLOG_DECLARE_CATEGORY(jserrors);
|
||||||
|
|
||||||
#else /* WITH_NSLOG */
|
#else /* WITH_NSLOG */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue