diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2023-03-07 15:02:55 +0100 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2023-03-14 10:10:21 +0100 |
commit | e1a5238f4ca16a03f428bd0566d4e767a9a16326 (patch) | |
tree | 0b9e50b136aa14cb9091794c328851a8d0a168b5 | |
parent | d4e7154eda585843d05b8690e742b302cf6b6abe (diff) | |
download | erlang-e1a5238f4ca16a03f428bd0566d4e767a9a16326.tar.gz |
wx: Improve debug printouts
Remove printouts of large binaries.
-rw-r--r-- | lib/wx/c_src/wxe_impl.cpp | 30 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_impl.h | 3 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_return.cpp | 7 |
3 files changed, 31 insertions, 9 deletions
diff --git a/lib/wx/c_src/wxe_impl.cpp b/lib/wx/c_src/wxe_impl.cpp index a32e09db01..48c5bd2f4c 100644 --- a/lib/wx/c_src/wxe_impl.cpp +++ b/lib/wx/c_src/wxe_impl.cpp @@ -120,20 +120,36 @@ void send_msg(const char * type, const wxString * msg) { rt.send(emsg); } +void wx_print_term(ErlNifEnv * env, ERL_NIF_TERM t) +{ + if(enif_is_binary(env, t)) { + ErlNifBinary bin; + enif_inspect_binary(env, t, &bin); + if(bin.size > 128) { + enif_fprintf(stderr, "<<...LARGE BIN>"); + } else { + enif_fprintf(stderr, "%T", t); + } + } else { + enif_fprintf(stderr, "%T", t); + } +} + + + void print_cmd(wxeCommand& event) { int i; wxe_fns_t *func = &wxe_fns[event.op]; enif_fprintf(stderr, " %T %d %s::%s(", event.caller, event.op, func->cname, func->fname); - for(i=0; i < event.argc-1; i++) { - enif_fprintf(stderr, "%T,", event.args[i]); - } - if(i > 0) { - enif_fprintf(stderr, "%T)\r\n", event.args[i]); - } else { - enif_fprintf(stderr, ")\r\n"); + for(i=0; i < event.argc; i++) { + wx_print_term(event.env, event.args[i]); + if(i < event.argc - 1) + enif_fprintf(stderr, ", "); } + enif_fprintf(stderr, ")\r\n"); } + /* ************************************************************ * Init WxeApp the application emulator diff --git a/lib/wx/c_src/wxe_impl.h b/lib/wx/c_src/wxe_impl.h index ee8654d1ef..45e80a77d1 100644 --- a/lib/wx/c_src/wxe_impl.h +++ b/lib/wx/c_src/wxe_impl.h @@ -115,4 +115,7 @@ typedef struct { extern wxe_fns_t wxe_fns[]; +void wx_print_term(ErlNifEnv * env, ERL_NIF_TERM t); + + #endif //_WXE_IMPL_H diff --git a/lib/wx/c_src/wxe_return.cpp b/lib/wx/c_src/wxe_return.cpp index 7d2e072561..621e39f16b 100644 --- a/lib/wx/c_src/wxe_return.cpp +++ b/lib/wx/c_src/wxe_return.cpp @@ -43,8 +43,11 @@ wxeReturn::~wxeReturn () { int wxeReturn::send(ERL_NIF_TERM msg) { int res; if(wxe_debug) { - if(isResult) - enif_fprintf(stderr, "return to %T: %T\r\n", caller, msg); + if(isResult) { + enif_fprintf(stderr, "return to %T: ", caller); + wx_print_term(env, msg); + enif_fprintf(stderr, "\r\n"); + } } if(isResult) { res = enif_send(NULL, &caller, env, |