You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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"

脚本使用步骤

  1. 将上面的代码保存为qtcreator_core_debug.sh
  2. 给脚本添加执行权限:
    chmod +x qtcreator_core_debug.sh
    
  3. 运行脚本,传入三个参数:
    ./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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:31:41