前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gdb 自动调试

gdb 自动调试

作者头像
xcywt
发布2023-08-26 17:45:29
2000
发布2023-08-26 17:45:29
举报
文章被收录于专栏:xcywtxcywt

记录一些GDB调试相关的东西。

coredump设置无限大小。

ulimit -c unlimited

调整core生成的目录:如下就是指定生成在【/home/dadao/DDR_Linux/Server/coreTmp】目录下。

sudo bash -c 'echo "/home/dadao/DDR_Linux/Server/coreTmp/core.%e.%t" > /proc/sys/kernel/core_pattern'

自动将调用堆栈打印出来。如下:就是自动将coredump文件进行调试,会打印出来调用堆栈。可以自行重定向到指定文件中,方便统计问题。

gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" MobileServer coreTmp/core.MobileServer.1692778494

MobileServer:是调试程序。

coreTmp/core.MobileServer.1692778494:是生成的崩溃文件。

整了一个脚本:

代码语言:javascript
复制
echo "GDB调试工具. V0.01 2023.08.23 ... "
echo "本程序运营目录为:[/home/dadao/DDR_Linux/Server],  core文件存放的目录为[./coreTmp] ...... "
echo "使用方法:./"$0" exeName coreName"

MYSH_NAME=$0
EXE_NAME=$1
CORE_NAME=$2

if [ -e $EXE_NAME ]; then
    echo $EXE_NAME"要调试的程序文件存在"
else
    echo $EXE_NAME"要调试的程序文件不存在,请检查"
    exit 1
fi

if [ -e $CORE_NAME ]; then
    echo $CORE_NAME"core文件存在"
else
    echo $CORE_NAME"core文件不存在,请检查"
    exit 2
fi

core_file_dir="./coreTmp" # core文件存放的目录
core_file_new=$CORE_NAME  # 最终的core文件,若输入为压缩包。则会去掉后面的 .tar.gz
substr=".tar.gz"
if [[ $CORE_NAME == *"$substr"* ]]; then
    echo $CORE_NAME"为压缩包,需要解压。"
    tar xvf $CORE_NAME -C $core_file_dir  # 相当于默认了 AAABBB.tar.gz 解压后的文件名一定是 AAABBB
    core_file_new=${CORE_NAME:0:-7}   # 直接截取,把.tar.gz去掉.  
else
    echo $CORE_NAME"无需解压"
fi

v_time=`date "+%Y_%m_%d_%H_%M_%S"`
outFile="./LOGS/COREDUMPLOG_"$v_time".txt"
echo "要调试的程序为:"$EXE_NAME" 最终的core文件为:"$core_file_new" 输出文件为:"$outFile
gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" $EXE_NAME $core_file_new > $outFile
cat $outFile  # 再把结果输出到终端

if [ "$CORE_NAME" == "$core_file_new" ]; then
    echo "处理完毕, 输出文件为 [ *** FBI WARNING:输出文件名为当前时间,不是程序崩溃时间 *** ]:"$outFile
else
    echo "处理完毕,将删除:"$core_file_new", 输出文件为 [ *** FBI WARNING:输出文件名为当前时间,不是程序崩溃时间 *** ]:"$outFile
    rm $core_file_new
fi
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档