【问题标题】:Eclipse CDT - using objdump in WindowsEclipse CDT - 在 Windows 中使用 objdump
【发布时间】:2014-04-30 05:18:06
【问题描述】:

Eclipse CDT 二进制解析器“GNU Elf Parser”在我在 Windows 上安装 Eclipse 时遇到问题。

  • 在 linux 安装上一切正常

问题

我有一个 GNU ELF 32 格式的编译 ELF。当我尝试使用 GNU Elf Parser 查看此内容时,我得到:

java.io.IOException: Cannot run program "objdump": Launching failed
at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:347)
...
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

调试

当然,这只是意味着 CDT 插件找不到 objdump。

  • 测试的 ELF 在 linux-eclipse-cdt 安装中正确打开

  • 假设我的 objdump 位于 'C:\binutils\bin'

  • 你到底是如何设置 Eclipse 的 CLASSPATH 来在那里搜索的?

我已经尝试了几件事,从编辑我的系统 PATH 或 CLASSPATH。我也尝试过设置 Workspace & C/C++ Build/Env 设置。没有任何效果。

问题

你到底是怎么做到的?

编辑 - 基本解决方案

感觉有点傻,但要解决你只需要安装 MinGW 并将 C:/MinGW/bin 添加到 PATH 即可。然后重新启动 Eclipse。

  • 我正在使用我们自己的内部工具链和 objdump 版本制作我自己的 Eclipse 发行版,因此是混搭!

  • 我尝试了其他几种方法来让它工作(所以我最终可以使用我们自己的 objdump 实例,但没有运气!

基本解决方案说明:

  1. 你需要从 C:\MinGW\bin 来完成这项工作:

    • objdump.exe
    • addr2line.exe
    • c++filt.exe
    • libgcc_s_sw2-1.dll
    • zlib1.dll

因此,如果您将这些移动到 C:\myGnuBinUtils 并将其添加到您的系统 PATH (不是一些 eclipse 设置,实际路径),那么这个也可以。

  • 这些文件总共 24MB; MinGW 为 715MB...

有谁知道如何在不修改系统路径的情况下达到相同的结果?

【问题讨论】:

    标签: eclipse eclipse-cdt


    【解决方案1】:

    听起来您需要一个“ObjDump”Java 包装器。例如:

    “CLASSPATH”仅适用于 Java:它不会影响运行非 Java .exe

    Java exec() 将使用 Java VM 的系统 PATH。但是,您可以在运行时对其进行修改。例如:

    using Runtime.exec() in Java

    ProcessBuilder proc = new ProcessBuilder("<Directory PAth>" + "Executable.exe");
    proc.redirectOutput(ProcessBuilder.Redirect.INHERIT);
    proc.directory(fi); //fi = the output directory path
    proc.start();
    

    【讨论】:

    • 感谢您的链接;看来他们已将“objdump”硬编码到源代码中!
    猜你喜欢
    • 2011-02-28
    • 2019-09-13
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2010-11-13
    • 2012-05-31
    相关资源
    最近更新 更多