aboutsummaryrefslogtreecommitdiff
path: root/src/zjs_console.c
diff options
context:
space:
mode:
authorJimmy Huang <jimmy.huang@intel.com>2018-02-01 10:54:42 -0800
committerGeoff Gustafson <geoff@linux.intel.com>2018-05-18 15:50:27 -0700
commit3ec5b47a6a72170e8ab57e0155b048fe09219dca (patch)
treea07d859ca3ebcab98df597801121f96d099bb030 /src/zjs_console.c
parent0f1ca5424d85131fd488b1baa9b8a3daa4fbafa8 (diff)
[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 <jimmy.huang@intel.com>
Diffstat (limited to 'src/zjs_console.c')
-rw-r--r--src/zjs_console.c19
1 files changed, 19 insertions, 0 deletions
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);