diff --git a/core/wasm_shims/tooldata/tooldata_runtime_stubs.cc b/core/wasm_shims/tooldata/tooldata_runtime_stubs.cc index e2be052..04223e7 100644 --- a/core/wasm_shims/tooldata/tooldata_runtime_stubs.cc +++ b/core/wasm_shims/tooldata/tooldata_runtime_stubs.cc @@ -1,5 +1,6 @@ #include "tooldata.hh" +#include #include #include @@ -15,7 +16,11 @@ bool db_live = false; extern "C" { int tool_nml_register(CANON_TOOL_TABLE *tblptr) { - return tblptr ? 0 : -1; + if (!tblptr) { + std::fprintf(stderr, "%5d!!!PROBLEM tool_nml_register()\n", getpid()); + return -1; + } + return 0; } int tooldata_db_init(char progname_plus_args[], int) { @@ -29,10 +34,14 @@ int tooldata_db_init(char progname_plus_args[], int) { for (char *token = program; token; token = strtok_r(nullptr, " ", &saveptr)) { ++argc; if (argc >= MAX_DB_PROGRAM_ARGS) { + std::fprintf(stderr, + "!!!!db_init: argc exceeds MAX_DB_PROGRAM_ARGS=%d\n", + MAX_DB_PROGRAM_ARGS); return -1; } } if (!program || access(program, X_OK) != 0) { + std::fprintf(stderr, "!!!!db_init: <%s> not executable\n", program ? program : ""); return -1; } return -1; diff --git a/test-linuxcnc-wasm-tooldata-link.sh b/test-linuxcnc-wasm-tooldata-link.sh index 9c1feb4..1db5906 100755 --- a/test-linuxcnc-wasm-tooldata-link.sh +++ b/test-linuxcnc-wasm-tooldata-link.sh @@ -11,5 +11,9 @@ probe=$(./build-linuxcnc-wasm-standalone-probe.sh --mode tooldata-link) "$probe" 2>"$probe.err" grep -F "tool_mmap_user(): tool mmap not available" "$probe.err" >/dev/null grep -F "tooldata_put() no tool_mmap_base" "$probe.err" >/dev/null +grep -F "!!!PROBLEM tool_nml_register()" "$probe.err" >/dev/null +grep -F "!!!!db_init: <" "$probe.err" >/dev/null +grep -F "not executable" "$probe.err" >/dev/null +grep -F "!!!!db_init: argc exceeds MAX_DB_PROGRAM_ARGS=10" "$probe.err" >/dev/null echo "linuxcnc wasm tooldata shim link probe passed"