若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129858821

红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

国产麒麟系统相关开发

上一篇:《麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo》
下一篇:《麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo》

前言

  本篇就适合代码崩溃的方法,可以定位到代码崩溃原因,测试Demo。

使用gdb定位Qt的release(国产麒麟系统)

步骤一:新建立一个简单的应用

  

步骤二:造崩溃代码

DumpWidget::DumpWidget(QWidget *parent) :QMainWindow(parent),ui(new Ui::DumpWidget),_pTimer(0)
{ui->setupUi(this);LOG << _pTimer;
#if 0if(!_pTimer){_pTimer = new QTimer(this);}
#endifLOG << _pTimer;connect(_pTimer, SIGNAL(timeout()), this, SLOT(slot_timeout()));LOG << _pTimer;_pTimer->setInterval(1000);
LOG << _pTimer;
}

  

步骤三:运行崩溃

  

步骤四:为了更好的看到效果,加3s延迟

  

  

  

步骤五:定位到coredump文件

  默认目录/var/lib/system/coredump
  

  没有,怎么弄国产麒麟系统都不会有得,因为生成在/tmp目录下了,查看“入坑一”:
  

步骤六:定位位置

  

  因为Demo堆栈不多,就一层,所以很容易定位,而实际程序可能达到几兆,几十兆,几百兆甚至1~2个GB。
  这里为了再次确认,gdb调试release版本没有添加任何额外pro语句尝试了一次:
  

  (注意:不知道ubuntu是否这样可以,目前通过其他方法都需要加g或者qmake,这个持保留意见,后续进一步了解再补充了)
  (注意:后续通过“模拟实战”,发现能定位给到错误的函数,但是没有行号。)

模拟实战

  先加了一句代码:
  

  运行崩溃:

  

  定位coredump文件:
  

  然后使用gdb的方法:

  

  

  定位不到,这个时候再按一下回车:

  
(注意:发现能定位给到错误的函数,但是没有行号。)

现场另外一种情况

  
  这个情况结合很早之前烤机的bug,QDateTime::currentDataTime().toString(“yyyy-MM-dd hh:mm:ss:zzz”)出现乱码,跑起来偶尔出现乱码,就会一直乱码,启动非乱码则非乱码,这个是qt和麒麟的兼容性问题,后续再议。
  这部分遗留问题,已经在下一篇文章中得到了解决,并且做了专项测试:《麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo》

入坑

入坑一:没有生成coredump文件

问题

  默认目录/var/lib/system/coredump,目录为空,试了其他方法也不行。

原理

  默认生成在了/tmp目录下了,而不是coredump目录下。
  使用其他ulimit -c unlimited也不会,国产麒麟系统是对系统很多默认配置和路径做了强制修改的。

解决

  默认生成在了/tmp目录下了
  

上一篇:《麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo》
下一篇:《麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo》

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129858821

麒麟系统开发笔记(十):在国产麒麟系统上使用gdb定位崩溃异常方法流程以及测试Demo相关推荐

  1. 麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127532255 红胖子(红模仿)的博文大全:开发技术集 ...

  2. 麒麟系统开发笔记(一):国产麒麟系统搭建开发环境之虚拟机安装

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/123045165 红胖子(红模仿)的博文大全:开发技术集 ...

  3. 麒麟系统开发笔记(八):在国产麒麟系统上使用linuxdeployqt发布qt程序

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127484901 红胖子(红模仿)的博文大全:开发技术集 ...

  4. 麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/123840699 红胖子(红模仿)的博文大全:开发技术集 ...

  5. 易课寄在线购课系统开发笔记(二十五)--完成课程详情页面展示相关功能(应用Redis缓存)

    课程详情页面展示 创建一个课程详情页面展示的工程,是一个表现层工程. 工程搭建 ecourses-item-web.打包方式 war. 可以参考 易课寄在线购课系统开发笔记(七)–后台管理系统工程搭建 ...

  6. 易课寄在线购课系统开发笔记(十五)--完成购课系统门户的工程搭建

    购课系统门户首页 工程搭建 可以参考 易课寄在线购课系统开发笔记(七)–后台管理系统工程搭建分析 ecourses-bms-web 工程的搭建过程. 功能分析 请求的 url:/index web.x ...

  7. 易课寄在线购课系统开发笔记(十六)--完成内容服务系统的工程搭建

    首页动态展示分析 内容信息要从数据库中获得. 动态展示分析 内容需要进行分类. 分类下有子分类,需要动态管理. 分类下有内容列表. 单点的内容信息: 有图片 有链接 有标题 有价格 包含大文本类型,可 ...

  8. 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

  9. 【Visual C 】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

最新文章

  1. Xbox One 初始化-2 激活(百视通)和配置账户
  2. AI时代的摩尔定律?黄氏定律预测AI性能将逐年翻倍
  3. Week04-面向对象设计与继承
  4. Combinations leetcode java
  5. 转载 ---资深HR告诉你:我如何筛选简历与选择人员的
  6. 【数据结构与算法】数组动态分配方式的思考
  7. Swift中的函数curring简介
  8. H5实现俄罗斯方块(一)
  9. sql2005数据库备份—sql语句
  10. java获取反射机制的三种方式
  11. linux 忘记原来的myql的root的密码
  12. 扫描网络计算机mac地址,局域网MAC地址查询扫描器
  13. 淮安颜老师计算机,颜老师_以老师为话题的作文750字_独木帆作文网
  14. 计算机网络按传输介质分为哪几类,计算机网络按传输介质可分为哪三类?
  15. html圆形头像简易实现
  16. P3842 [TJOI2007]线段(线性dp,分类讨论)
  17. soui edit passwrod模式下禁用输入法
  18. url中如果有引号的处理
  19. 快速聊天:不用QQ概念版 也能将将QQ好友放到桌面 针对所有windows系统
  20. 某银行大数据体系架构设计与演进

热门文章

  1. JDK8所有版本下载地址
  2. CentOS 系统如何如设置使系统自动锁屏的时间
  3. IT界的笑话(更新版)
  4. java 文件解析成JSON数据(其三)
  5. OpenGL学习笔记一之实战篇二 文本渲染
  6. HDU 4081 Qin Shi Huang's National Road System (次小生成树算法)
  7. 【每天学习一点新知识】nmap端口扫描
  8. html 文字 横线 自动长度,css怎么设置下划线的长度?
  9. php 安装fileinfo扩展
  10. OpenCV怎么学?OpenCV入门到底要学多久?