开源改变世界

通过 G 代码调用的 Python 代码中的错误导致 Boost Python 崩溃 (linux boost::python::error_already_set) #2092

推推 grbl 3年前 (2023-01-31) 190次浏览
关闭
snowgoer540 打开了这个问题 2022 年 10 月 14 日 · 1 条评论 · 由#2100修复
关闭

注释

通过 G 代码调用的 Python 代码中的错误导致 Boost Python 崩溃 (linux boost::python::error_already_set) #2092
贡献者
下雪人540 评论了 2022 年 10 月 14 日  

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

  1. 使用以下两行(有意错误(逗号后的空格))创建一个 .ngc 文件:
    ;py, print(2*3)
    m30

这是我期望发生的事情:

在提交ac779c4之前,弹出窗口中会显示以下错误:

“在 /home/plasma/linuxcnc/nc_files/pytest.ngc 的第 2 行附近:
py_execute(print(23)):
IndentationError: (‘unexpected indent’, (”, 1, 1, ‘print(23)\n’ ))”

这是发生了什么:

Linuxcnc 崩溃并出现以下错误:

“在抛出 ‘boost::python::error_already_set’
/home/plasma/linuxcnc-dev/scripts/linuxcnc: line 930: 29799 Aborted $EMCDISPLAY -ini “$INIFILE” $EMCDISPLAYARGS $EXTRA_ARGS 实例后终止调用

在此之前它工作正常:

commit 1efe486是 commit ac779c4 之前的提交,当 commit 1efe486 被签出时它可以正常工作

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

  • 我正在使用这个 Linux 发行版和版本(通常显示为lsb_release -a):master
  • 我正在使用这个内核版本(显示为uname -a):“Linux mx 4.19.0-21-rt-amd64使用 Tcl_SetResult 和 Tcl_GetStringResult  #1 SMP PREEMPT RT Debian 4.19.249-2 (2022-06-30) x86_64 GNU/Linux`
  • 我在跑步 …
    • [x] 编译就地运行版本
  • 我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,scripts/get-version-from-git):v2.9.0-pre0-8016-gb7f86c2022
  • 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):Axis
  • I am using this interface hardware vendor and chipset (eg, parallel port, ethernet port, FPGA card):发生在BM或VM硬件上。

重新创建的步骤,在ac779c4提交的评论部分中提到:

  1. 使用以下两行(有意错误(逗号后的空格))创建一个 .ngc 文件:
    ;py, print(2*3)
    m30

  2. 签出提交1efe486

  3. 打扫干净

  4. 制作

  5. 编译完成后,运行 linuxcnc 并选择轴模拟

  6. 导航到在步骤 1 中创建的 .ngc 文件并加载它。

  7. Axis 将抛出一个带有以下错误的弹出窗口(linuxcnc 不会崩溃):
    Near line 2 of /home/plasma/linuxcnc/nc_files/pytest.ngc:
    py_execute( print(23)):
    IndentationError: (‘unexpected indent’, ( ”, 1, 1, ‘打印(23)\n’))

  8. 关闭 linuxcnc 并签出提交ac779c4

  9. 打扫干净

  10. 制作

  11. 编译完成后,运行 linuxcnc 并选择轴模拟

  12. 导航到在步骤 1 中创建的 .ngc 文件并加载它。

13 linuxcnc 将因以下错误而崩溃:
抛出 ‘boost::python::error_already_set’ 实例后调用终止
/home/plasma/linuxcnc-dev/scripts/linuxcnc: line 930: 29799 Aborted $EMCDISPLAY -ini “$INIFILE ” $EMCDISPLAYARGS $EXTRA_ARGS

通过 G 代码调用的 Python 代码中的错误导致 Boost Python 崩溃 (linux boost::python::error_already_set) #2092
合作者

只是为了让 Jeff 下次在场时注意到它。

jepler 添加了一个提交到 jepler/linuxcnc 引用了这个问题 2022 年 10 月 16 日

通过 G 代码调用的 Python 代码中的错误导致 Boost Python 崩溃 (linux boost::python::error_already_set) #2092
喜欢 (0)