在 QtCreator 命令行上指定 GDB 启动脚本

Posted

技术标签:

【中文标题】在 QtCreator 命令行上指定 GDB 启动脚本【英文标题】:Specifying GDB start script on QtCreator command line 【发布时间】:2018-02-27 15:21:20 【问题描述】:

我们正在使用 QtCreator 3.2.1 来分析 Linux (Debian Jessie) 上的核心转储。目前我们通过菜单和“加载核心文件”对话框手动加载它,它允许我们指定一个 GDB 启动脚本,用于设置源代码搜索路径。路径以及启动脚本取决于正在调试的特定构建,因此需要与可执行文件和核心文件一起指定。

如果能够通过一个小的 Bash 辅助脚本从命令行启动它会很方便。不幸的是,虽然 QtCreator 具有指定核心文件和可执行文件的命令行选项,但它似乎没有指定调试器启动脚本的选项。

还有其他选择吗?

【问题讨论】:

“调试器启动脚本”可以放在Options -> Debugger > GDB (tab) > Additional Startup Commands 中吗?否则你能用“能够从帮助脚本启动它”来澄清你想要什么吗? @DBedrenko - 为了(希望)清晰起见,我已经改写了这个问题。 @DBedrenko - Additional Startup Commands 设置的问题是我们需要在每次调用时调用不同的启动脚本。但是我们可以通过指定相对路径并从适当的当前目录或其他方式启动来实现这一点。感谢您的想法! 【参考方案1】:

只是一个疯狂的想法:

创建一个包装器$HOME/mygdb/gdb:

#!/bin/bash
gdb -command="$$HOME/mygdb/.gdbinit" "$@"

然后像这样调用 QtCreator:

PATH=$HOME/mygdb:$PATH qtcreator -debug myexecutable,core=mycorefile

【讨论】:

【参考方案2】:

受@DBedrenko 最初评论的启发,我们使用Additional Startup Commandsource startup.gdb 配置了GDB 调试器。

bash 帮助程序脚本只是将cd 指向包含适当startup.gdb 文件的目录,然后调用qtcreator -debug <exe>,core=<core>

效果很好。

【讨论】:

以上是关于在 QtCreator 命令行上指定 GDB 启动脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 qtcreator 调试器中发送 gdb 命令

GDB 没有启动

无法在 Qt Creator 中启动 gdb.exe

gdb常用调试命令

GDB调试多线程

GDB调试实战给程序传递启动参数