From 3ec5b47a6a72170e8ab57e0155b048fe09219dca Mon Sep 17 00:00:00 2001 From: Jimmy Huang Date: Thu, 1 Feb 2018 10:54:42 -0800 Subject: [debugger] Added debugger support for Zephyr Created shim layer for building against the POSIX network stack on Zephyr which enables the debugger to run on the frdm_k64f board with TCP IPV4 on port 5001. Signed-off-by: Jimmy Huang --- src/zjs_console.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/zjs_console.c') diff --git a/src/zjs_console.c b/src/zjs_console.c index 3548973..852c51b 100644 --- a/src/zjs_console.c +++ b/src/zjs_console.c @@ -12,6 +12,10 @@ #include "zjs_zephyr_port.h" #endif +#ifdef JERRY_DEBUGGER +#include "debugger.h" +#endif + #define MAX_STR_LENGTH 256 #ifdef ZJS_LINUX_BUILD @@ -118,17 +122,29 @@ static void print_value(const jerry_value_t value, FILE *out, bool deep, if (!value2str(value, buf, MAX_STR_LENGTH, quotes) && deep) { if (jerry_value_is_array(value)) { u32_t len = jerry_get_array_length(value); +#ifdef JERRY_DEBUGGER + jerry_debugger_send_output((jerry_char_t *)"[", 1, JERRY_DEBUGGER_OUTPUT_OK); +#endif fprintf(out, "["); for (int i = 0; i < len; i++) { if (i) { +#ifdef JERRY_DEBUGGER + jerry_debugger_send_output((jerry_char_t *)", ", 2, JERRY_DEBUGGER_OUTPUT_OK); +#endif fprintf(out, ", "); } ZVAL element = jerry_get_property_by_index(value, i); print_value(element, out, false, true); } +#ifdef JERRY_DEBUGGER + jerry_debugger_send_output((jerry_char_t *)"]", 1, JERRY_DEBUGGER_OUTPUT_OK); +#endif fprintf(out, "]"); } } else { +#ifdef JERRY_DEBUGGER + jerry_debugger_send_output((jerry_char_t *)buf, strlen(buf), JERRY_DEBUGGER_OUTPUT_OK); +#endif fprintf(out, "%s", buf); } } @@ -138,6 +154,9 @@ static ZJS_DECL_FUNC_ARGS(do_print, FILE *out) for (int i = 0; i < argc; i++) { if (i) { // insert spaces between arguments +#ifdef JERRY_DEBUGGER + jerry_debugger_send_output((jerry_char_t *)" ", 1, JERRY_DEBUGGER_OUTPUT_OK); +#endif fprintf(out, " "); } print_value(argv[i], out, true, false); -- cgit v1.2.3