如何在Eclipse中启动gdb调试之前运行linux脚本

3

如何在Eclipse中调试之前运行命令?

实际上,我想要执行一些脚本来设置环境变量(导出变量)并在从Eclipse启动gdb进程调试我的程序之前执行一堆其他程序。

我尝试在调试器选项卡中执行以下操作:

<command> && <path-to-gdb-executable> 

但是我在尝试在Eclipse中执行gdb时遇到了错误,如上述语句所示。

请帮助我 - 我实际上想要在gdb开始调试之前执行一个名为“before-launch-commands.sh”的脚本。我正在尝试在Eclipse Kepler下执行一个cpp程序。

谢谢。

1个回答

5
Eclipse的调试配置已经可以为您设置环境变量。我假设这不够用,否则您早就完成了。
首先要做的是创建一个新脚本wrapped-gdb.sh
#!/bin/sh

# Export any variables we need.
# Note that '.' (dot) is like an "include" statement.
. /path/to/before-launch-commands.sh

# Run GDB using the parameters passed in
exec /path/to/gdb "$@"

接下来,将该脚本设置为可执行:
chmod +x /path/to/wrapped-gdb.sh

最后,在调试配置对话框的 Debugger 选项卡中,将标有“GDB Debugger”的框中输入路径/path/to/wrapped-gdb.sh

启动调试会话后,它应该会做正确的事情。


嗨,我尝试了你说的方法,但是在调试启动时出现了以下错误 -“在发送 /path/to/wrapped-gdb.sh --version 后无法确定 GDB 版本”,然后启动被终止。那么现在如何将像--version等参数委派给在wrapped-gdb.sh中调用的gdb呢? - Dhwanit
我研究了一下,理想情况下应该可以工作吧... - Dhwanit
如果你做得对的话,那么 wrapped-gdb.sh --version 应该可以正常工作。当你手动运行它时,它会显示什么? - ams
实际上,Eclipse 中选择的调试器配置文件是 GDB DSF,现在我通过创建新的进程调试启动器进行了更改,并且第一部分已经成功运行,但现在它提示找不到 .gdbinit 文件。我正在寻找它的位置,并将其复制到我的用户主目录中。我认为这样做后应该可以解决问题。你知道 .gdbinit 在哪里吗?它并不在 gdb 可执行文件所在的文件夹中。 - Dhwanit
.gdbinit 是一个文件,你可以自己创建。它可以包含任何你喜欢的 gdb 命令。 - ams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接