如何在 Eclipse 中启动 gdb 调试之前运行 linux 脚本
Posted
技术标签:
【中文标题】如何在 Eclipse 中启动 gdb 调试之前运行 linux 脚本【英文标题】:How to run a linux script before launching gdb debugging in Eclipse 【发布时间】:2013-11-14 11:50:37 【问题描述】:在 Eclipse 中启动 gdb 调试之前,如何给出要运行的命令?
实际上,我想在 eclipse 启动 gdb 进程之前执行一些设置环境变量(导出变量)的脚本并执行一堆其他程序来调试我的程序。
我尝试在调试器选项卡选项中执行以下操作:
<command> && <path-to-gdb-executable>
但我得到了 eclipse 无法执行 gdb 的错误,如上述语句中给出的。 请帮助-我实际上想在gdb启动调试之前执行一个名为“before-launch-commands.sh”的脚本。我正在尝试在eclipse kepler下执行一个cpp程序。
谢谢。
【问题讨论】:
【参考方案1】:Eclipse Debug Configurations 已经可以为您设置环境变量。我假设这还不够,或者你已经完成了。
首先要做的是创建一个新脚本,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? ***.com/questions/1932964/… 我研究了这个,理想情况下我猜它应该可以工作...... 如果你做对了,那么wrapped-gdb.sh --version
应该可以工作。当你手动运行它时它会说什么?
实际上在 Eclipse 中选择的调试器配置文件是 GDB DSF,现在我通过创建一个新的进程调试启动器对其进行了更改,它适用于第一部分,现在它正在为找不到 .gdbinit 尖叫。我正在寻找它的位置并将其复制到我用户的家中。我认为在此之后它应该工作。知道 .gdbinit 在哪里 - 它不在 gdb 可执行文件所在的文件夹中。
.gdbinit 是您可以自己创建的文件。它可以包含任何你喜欢的 gdb 命令。以上是关于如何在 Eclipse 中启动 gdb 调试之前运行 linux 脚本的主要内容,如果未能解决你的问题,请参考以下文章