From 945e839e9d0b9bbe83f970fb86ab3909054495d4 Mon Sep 17 00:00:00 2001 From: cnc Date: Wed, 3 Jun 2026 21:19:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=80=83=E6=89=80=E6=9C=89=E5=88=86?= =?UTF-8?q?=E7=BB=84=EF=BC=8C=E5=AE=8C=E6=88=90=E5=B0=BD=E9=87=8F=E5=A4=9A?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E3=80=82=E7=A6=81=E6=AD=A2=E9=A1=BA?= =?UTF-8?q?=E6=89=8B=E6=89=A9=E5=8A=9F=E8=83=BD=20smoke?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:对齐 LinuxCNC tooldata_nml.cc 与 tooldata_db.cc 的失败诊断输出,收紧 WASM tooldata link probe;未扩展临时 smoke 行为。 --- core/wasm_shims/tooldata/tooldata_runtime_stubs.cc | 11 ++++++++++- test-linuxcnc-wasm-tooldata-link.sh | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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"