如何在 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何将 GDB 调试器安装到 Eclipse CDT

GDB调试——启动调试程序

如何在 Eclipse CDT 中使用 GDB 控制台?

在 Eclipse 中查看变量时 Gdb 停止

GTD180006:运维安装调试GDB

我目前在 Eclipse MacOS Big Sur 上进行 GDB 调试时遇到错误