如何在QtCreator 3.2.1命令行指定GDB启动脚本分析Core Dump
用Bash脚本一键启动QtCreator调试Core Dump
我之前也碰到过一模一样的痛点——每次手动选文件、指定脚本太繁琐,还好QtCreator支持通过命令行参数直接完成这些操作,刚好能解决你的需求。下面是具体的实现思路和脚本示例:
核心逻辑
QtCreator的命令行工具qtcreator支持直接指定调试目标、core文件以及GDB启动脚本,我们只需要把这些参数封装到Bash脚本里,让脚本帮我们做参数校验和命令拼接就可以了。
完整Bash脚本示例
#!/bin/bash # 检查参数数量是否正确 if [ $# -ne 3 ]; then echo "用法: $0 <可执行文件路径> <core文件路径> <GDB启动脚本路径>" echo "示例: $0 ./my_app ./core_dump ./gdb_init_script.gdb" exit 1 fi # 赋值参数变量 EXE_FILE="$1" CORE_FILE="$2" GDB_SCRIPT="$3" # 检查文件是否存在 if [ ! -f "$EXE_FILE" ]; then echo "错误: 可执行文件 $EXE_FILE 不存在!" exit 1 fi if [ ! -f "$CORE_FILE" ]; then echo "错误: Core文件 $CORE_FILE 不存在!" exit 1 fi if [ ! -f "$GDB_SCRIPT" ]; then echo "错误: GDB启动脚本 $GDB_SCRIPT 不存在!" exit 1 fi # 转换为绝对路径(避免QtCreator路径解析出错) EXE_ABS=$(realpath "$EXE_FILE") CORE_ABS=$(realpath "$CORE_FILE") GDB_SCRIPT_ABS=$(realpath "$GDB_SCRIPT") # 启动QtCreator并加载调试环境 echo "正在启动QtCreator,加载可执行文件: $EXE_ABS,Core文件: $CORE_ABS,GDB脚本: $GDB_SCRIPT_ABS" qtcreator --debugger-script "$GDB_SCRIPT_ABS" "$EXE_ABS" --core "$CORE_ABS"
脚本使用步骤
- 将上面的代码保存为
qtcreator_core_debug.sh - 给脚本添加执行权限:
chmod +x qtcreator_core_debug.sh - 运行脚本,传入三个参数:
./qtcreator_core_debug.sh /path/to/your/app /path/to/core /path/to/your/gdb_script.gdb
补充说明
- 如果你的QtCreator不在系统PATH里(比如是手动安装的),需要把
qtcreator替换成完整的安装路径,比如/opt/qtcreator-3.2.1/bin/qtcreator --debugger-script参数会让QtCreator在启动GDB时自动加载指定的脚本,刚好满足你配置源代码搜索路径的需求- 使用
realpath转换为绝对路径是为了避免QtCreator因为相对路径导致的找不到文件问题,如果你确定路径没问题,也可以跳过这一步
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

