【问题标题】:How to make the debugged app find shared libraries when invoked in gdb inside Eclipse CDT?在 Eclipse CDT 中的 gdb 中调用时,如何使调试的应用程序找到共享库?
【发布时间】:2010-05-14 13:04:48
【问题描述】:

我正在尝试在 Linux x86_64 (Ubuntu Karmic) 上调试 Eclipse CDT 内的 Firefox 主干。

我做了以下事情:

  • 我在项目级 Run/Debug 配置的 Source 窗格中创建了从 / 到 / 每个 DevMo 的路径映射。
  • 我已在主窗格中将 /opt/Projects/obj-debug/dist/bin/firefox-bin 设置为 C++ 应用程序。 (我的 Firefox obj 目录是 /opt/Projects/obj-debug)
  • 我已在“参数”窗格中将工作目录设置为 /opt/Projects/obj-debug/dist/bin
  • 我已在“参数”窗格中将参数设置为 -no-remote -P dev
  • 在“环境”窗格中,我已将环境设置为根据 run-mozilla.sh 的功能附加以下内容:
    • ADDON_PATH : /opt/Projects/obj-debug/dist/bin
    • 显示::0.0
    • DYLD_LIBRARY_PATH : /opt/Projects/obj-debug/dist/bin:/opt/Projects/obj-debug/dist/bin
    • LD_LIBRARY_PATH:/opt/Projects/obj-debug/dist/bin:/opt/Projects/obj-debug/dist/bin/plugins:/opt/Projects/obj-debug/dist/bin
    • LIBPATH : /opt/Projects/obj-debug/dist/bin:/opt/Projects/obj-debug/dist/bin
    • LIBRARY_PATH:/opt/Projects/obj-debug/dist/bin:/opt/Projects/obj-debug/dist/bin/components:/opt/Projects/obj-debug/dist/bin
    • MOZILLA_FIVE_HOME : /opt/Projects/obj-debug/dist/bin
    • NO_EM_RESTART : 1
    • NO_REMOTE:1
    • SHLIB_PATH : /opt/Projects/obj-debug/dist/bin:/opt/Projects/obj-debug/dist/bin
  • 在调试器窗格中,我有
    • 选择 gdb 调试器
    • 我已将 gdb 可执行文件设置为 gdb,将 .gdbinit 设置为 /home/hsivonen/.gdbinit

以上内容足以使用 Run 成功启动 Firefox。但是,当使用 Debug 启动时,我在控制台中得到了这一行: /opt/Projects/obj-debug/dist/bin/firefox-bin: error while loading shared libraries: libmozalloc.so: cannot open shared object file: No such file or directory

我还尝试将相关路径放在调试器窗格的共享库子窗格中,并且我尝试将 set solib-search-path /opt/Projects/obj-debug/dist/bin/components:/opt/Projects/obj-debug/dist/bin/plugins:/opt/Projects/obj-debug/dist/bin 在我的 .gdbinit 中。

运气不好。

在调试应用时,应该怎么做才能找到共享库?

【问题讨论】:

  • 您是否尝试过在 Eclipse 的调试配置中添加 LD_LIBRARY_PATH 等?

标签: linux gdb shared-libraries eclipse-cdt


【解决方案1】:

我经常以这种方式成功地使用 CDT 调试器:

  1. 从终端,为要调试的二进制文件设置工作环境(导出 LD_LIBRARY_PATH 等)
  2. 同一个终端,启动eclipse(eclipse会继承环境)
  3. 从 Eclipse 中选择“Makefile Project With Existing Code”并导入您的文件夹
  4. 从左侧窗格中,选择您的二进制文件并右键单击:Debug As → C/C++ Application。

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2010-12-07
    • 2015-11-12
    • 2022-01-11
    相关资源
    最近更新 更多