开源改变世界!!

halcompile: “TypeError: coercing to Unicode: .. ” 隐藏合理的错误信息 #431

推推 grbl 2年前 (2023-01-29) 145次浏览
关闭
2个任务
CorKrb 打开了这个问题 2018 年 4 月 27 日 · 1条评论
关闭
2个任务

halcompile: “TypeError: coercing to Unicode: .. ” 隐藏合理的错误信息#431

CorKrb 打开了这个问题 2018 年 4 月 27 日 · 1条评论

注释

halcompile:

以下是我重现该问题所遵循的步骤:

  1. 我编辑了一个组件“mytest.comp”(里面有不同的组件名称):
    component mysiggen;
    固定在浮动 to_sawtooth 中;
    固定在浮动 to_triangle 中;

选项用户空间是;

许可证“GPL”;
;;

void user_mainloop(void) {

rtapi_print_msg(RTAPI_MSG_ERR, "mysiggen: vor while(1)\n");
while(1) {
    usleep(100000);
    FOR_ALL_INSTS() {
        rtapi_print_msg(RTAPI_MSG_ERR, "hal_user_mainloop: saege=%lf, drei=%lf\n",
                    to_sawtooth  , to_triangle );
    }
}

}

  1. 我试着编译:
    halcompile –compile mytest.comp

这是我期望发生的事情:

输出:组件名称 (mysiggen) 与文件名 (mytest) 不匹配

这是发生了什么:

输出:
回溯(最近调用最后):
文件“/home/cncuser/CNC/NC/linuxCNC/bin/halcompile”,第 1416 行,在
main()
文件“/home/cncuser/CNC/NC/linuxCNC/bin/ halcompile”, line 1411, in main
os.unlink(outfile)
TypeError: coercing to Unicode: need string or buffer, NoneType 找到

我认为这里不应该发生两件事:

  1. 取消链接不存在的文件会隐藏相应的错误消息。
  2. 未找到错误系统消息并导致打印错误。
    我通过在 halcompile 的“try:”和“os.unlink(outfile)”之间添加“if outfile != None:”来解决这个问题:第 1410 行

有关我的硬件和软件的信息:

  • 我正在使用此 Linux 发行版和版本(通常由 显示lsb_release -a):
    没有可用的 LSB 模块。
    发行商 ID:Debian
    描述:Debian GNU/Linux 9.4 (stretch)
    版本:9.4
    代号:stretch

  • 我正在使用这个内核版本(显示为uname -a):
    Linux debian94 4.9.0-6-amd64使用 Tcl_SetResult 和 Tcl_GetStringResult  #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux

  • 我在跑步 …

    • 来自 linuxcnc.org 的二进制版本(包括 buildbot.linuxcnc.org)
    • [X] 我自己构建的二进制文件
    • 来自 linuxcnc.org 之外的其他来源的二进制版本
  • 我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,scripts/get-version-from-git):v2.8.0-pre1-3695-g159ce9c3c

  • 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):AXIS

  • 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡):
    仅在 VM 中模拟

halcompile:
成员
杰普勒 评论了 2018 年 4 月 27 日 通过电子邮件