自学内容网 自学内容网

Qt生成coredump文件(支持arm和x86架构)

简介:

coredump一般都在执行文件崩溃时自动生成的,用来定位造成程序崩溃的原因。
ubuntu下的设置coredump步骤(linux的x86架构)
1、正常情况下coredump生成路径需要在root权限下才能设置生效,所以我们需要进入root模式。

sudo su 

2、设置coredump生成路径。

sudo mkdir /home/core
echo /home/core/core_%e_%t_%p > /proc/sys/kernel/core_pattern

在这里插入图片描述
配置说明:

%%单个%字符
%p代表dump进程的进程ID
%u代表dump进程的实际用户ID
%g代表dump进程的实际组ID
%s导致本次core dump的信号
%t core dump的时间 (197011日计起的秒数)
%h主机名
%e程序文件名

3、查看coredump大小限制。

ulimit -c

在这里插入图片描述

4、如果大小为0,则需要设置大小,如不做限制。

ulimit -c unlimited

在这里插入图片描述
5、创建一个会崩溃的程序。

#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QVector<QString> ss;
    qDebug()<<ss[100];
    return a.exec();
}

6、运行,观察是否生成core文件。
在这里插入图片描述
7、gdb查看(ubuntu安装gdb比较容易,这里不做赘述)
在这里插入图片描述

arm下的设置coredump步骤
步骤其实跟x86的差不多,首先我们通过一个串口助手进入arm后台。
1、设置coredump路径

mkdir /opt/core
echo /opt/core/core_%e_%t_%p > /proc/sys/kernel/core_pattern

在这里插入图片描述
2、查看coredump大小限制。

ulimit -c

在这里插入图片描述
3、设置限制为无限制

ulimit -c unlimited

在这里插入图片描述
4、创建一个对应ARM平台的程序,然后运行。
在这里插入图片描述
5、观察coredump文件是否在对应目录生成成功。
注意:coredump占用外存极大,如需使用,请做好限制。
在这里插入图片描述
6、gdb调试
在这里插入图片描述
ARM架构gdb编译教程


原文地址:https://blog.csdn.net/weixin_43246170/article/details/143704801

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!