在 Eclipse Corrosion 上调试 rust 不再适用于全新安装

Posted

技术标签:

【中文标题】在 Eclipse Corrosion 上调试 rust 不再适用于全新安装【英文标题】:debugging rust on Eclipse Corrosion no longer works on fresh install 【发布时间】:2021-05-21 07:50:51 【问题描述】:

我更换了我的硬盘,所以我重新安装了 Eclipse Corrosion,但我保留了我的 Rust 项目。问题是当我在调试模式下启动我的 prog 时出现错误。它似乎在运行模式下工作,但我没有对此进行太多测试。

错误是 在“启动 my_prog”期间发生内部错误。 无法读取数组长度,因为“launchConfigEnv”为空

重要提示:它似乎与使用输入文件(调试配置/通用/输入文件)有关

我尝试了很多东西,很多安装,新项目,很多很多东西,但没有任何效果(我不知道 launchConfigEnv 是什么)。

欢迎任何帮助...

编辑:我安装了 2019.12 Eclipse,它工作正常。我会在这个版本上做一些工作,并尝试更多的配置来缩小问题。

【问题讨论】:

Eclipse 2021-09-M3A 上的相同问题。 Corrosion: Rust edition in Eclipse IDE 1.2.1.202106081156 org.eclipse.corrosion.feature.feature.group Eclipse CorrosionEclipse IDE for Embedded C/C++ Developers 4.21.0.20210827-1400 epp.package.embedcpp Eclipse Packaging Project 【参考方案1】:

作为一种解决方法,将单个环境变量添加到启动配置中,如下所示:

完成后,重新启动它,它应该可以工作了。

请注意,为了在 Eclipse 中进行 rust 调试,我安装了 MSYS2 和以下 MSYS2 包。

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-gdb
pacman -S man

我按照 Rust Corrosion Troubleshooting 指南中的一些说明获得了一个正常工作的 GDB。

参考:https://github.com/eclipse/corrosion/blob/master/documentation/Troubleshooting.md#debugging-on-windows

需要将Rust调试器命令改为rust-dbg.cmd,如下:

但是,PATH 环境对我不起作用,所以在 rust-gdb.cmd 脚本中,我在顶部附近添加了这个:

SET PATH=%PATH%;F:\msys64\mingw64\bin;F:\Data\.cargo\bin

(根据您安装的 MSYS2 和 Cargo/Rustup 进行调整)

此后 Eclipse 能够启动调试会话并在断点处停止。

【讨论】:

我在这里提出了一个关于这个问题的错误报告:github.com/eclipse/corrosion/issues/379

以上是关于在 Eclipse Corrosion 上调试 rust 不再适用于全新安装的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 在调试时使用 java 8 在 ClassLoader 上中断

使用 Eclipse 或其他方式在 Linux 目标上进行 Java 远程调试

在eclipse上调试flash时看不到变量

Eclipse超级有用的快捷键

Eclipse超级有用的快捷键

使用 Eclipse CDT/RSE/RDT 远程调试 C++ 应用程序