首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核Crash分析

在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对其进行了分析,使用的内核版本为:Linux2.6.32。...对每一个进程来说,Linux内核都会把两个不同的数据结构紧凑的存放在一个单独为进程分配的存储空间中:一个是内核态的进程堆栈,另一个是紧挨进程描述符的数据结构thread_info,叫线程描述符。...在Linux-2.6.32内核中thread_info.h文件中有对内核堆栈的定义: #define THREAD_SIZE 8192 在Linux内核中使用下面的联合结构体表示一个进程的线程描述符和内核栈...,在内核中文件include/linux/sched.h。...bust_spinlocks(0); do_exit(SIGKILL); } (2) 对于下面的两个信息,在函数show_pte中进行了打印,下面的打印涉及到了页全局目录,页表的知识,暂时先不分析

4.3K20

Linux crash分析简明参考

1 背景Linux操作系统在作为服务器的场景下应用最为广泛,但是在使用过程中也会遇到莫名崩溃的情况.这时我们就希望能对崩溃前一刻内存中的数据进行分析,从而找到崩溃的原因.本文将对整个过程所涉及到的技术做一个简单但是全面的介绍...,包括:如何安装kdump,如何设置系统参数来捕获崩溃前的内存;如何使用crash做简单的分析;并且介绍如何使用更加简便的工具PyKdump来做crash文件的分析.通过了解这些知识, 可以帮助Linux...工具分析4.1 安装crash工具为了不影响生产系统的运行,通常我们会将生成的vmcore文件拷贝到用于分析Linux系统上去分析.分析工具通常采用crash工具.CentOS下可以通过如下命令安装:...,并且要对照Linux源代码进行分析,其门槛比较高,新手短时间内很难掌握.还好有PyKdump工具,该工具以python语言编写,集合了常用的vmcore文件分析功能,可以作为crash插件的方式运行,...文件分析,命令查看如下:crash .

82100
您找到你想要的搜索结果了吗?
是的
没有找到

Android Crash之Native Crash分析

前言 上一篇给大家介绍了Android Crash中的Java Crash分析,我们可以知道Java Crash一般会弹出提示框告诉我们程序崩溃了,通常使用Crash工具都能够捕获到;本篇博客来谈谈如何针对...Native Crash进行分析,它相对与Java层面的Crash有什么特点?...Native Crash如何分析?...既然要分析就必须找到可以分析的东西,我们在分析Java层Crash的时候是通过logcat日志找到对应的出错代码,然而Native层Crash也是可以logcat日志来进行分析的。...Crash分析有个初步的认识,关于这一块还有很多东西可以讲,比如具体的signal有哪些,Linux下的信号机制是怎样的,怎样才能够捕获到信号等等,关于Native层的Crash捕获,我们有没有第三方的开发工具能帮助到我们

3.1K60

Android Crash之Java Crash分析

本系列博文主要是想跟大家分享一下在Android平台中如何进行Crash分析并解决问题并告诉大家如何通过bugly进行崩溃捕获快速定位问题。 什么是Crash?...这里我们进行一些概念上的普及: Crash就是由于代码异常而导致App非正常退出现象,也就是我们常说的『崩溃』 Android中有哪些类型Crash 通常情况下会有以下两种类型Crash: Java Crash...Native Crash 本篇先探讨Java Crash,Native Crash我们会在下一篇重点讨论。...当然上面只适用于Java Crash捕获,如果想更专业捕获到异常并更高效分析程序问题,可以尝试使用专业的第三方SDK来实现,这里推荐『腾讯Bugly』,可以参考一下笔者前面发表的文章『快速集成Bugly...总结 关于Java Crash分析已经介绍完了,相对还是比较简单,通过简单的方式就能够捕获到异常,但别忘了,Android最头痛的不是这种异常,而是Native层的异常,有时候就算能让你拿到堆栈信息你也不一定会解决问题

1.2K20

iOS crash分析实践

背景 分享一些过去两个月遇到的crash。...根据堆栈信息和日志信息,可以找到用户操作路径,是通过scheme进入分类; 但是直接用真机复现,相同的操作并不会导致crash; 通过分析crash出现的机型和系统特征,发现都是iOS 13以下系统...分析原因后,定位到是先调用scrollToItemAtIndexPath,再调用reloadData导致的异常。 解决方案也很简单,调整为正确的顺序即可。...场景分析: 1、主线程:did注册 =》TTNet初始化 =》发起网络请求 =》 获取公共参数 =》 dispatch_once ; 2、子线程:RPC(网络层)初始化 =》初始化 =》 获取公共参数...通过代码分析,可以知道是BDRpcAsyncOperation持有了某个block;该block持有了其他对象(因为block中访问了该对象)。

1.6K20

了解和分析iOS Crash

新机型的发布又会让适配相关的同学忙上一阵子啦,并且iOS Crash的问题始终伴随着移动开发者。本文将从三个阶段,由浅入深的介绍如何看懂并分析一篇crash报告,一起身临其境去读懂它吧。...当app发生crash时会产生crash report,这对我们定位crash的原因非常有帮助。该篇重点介绍了如何符号化、看懂并解析一篇crash Report。...App发布指南里的分析Crash Reports讨论了如何查看那些crash report,这些report既包含通过TestFlight下载的测试用户处获得,又包含通过App Store下载的正式用户处获得...分析Crash report 这段将会讨论一篇标准crash report的各章节的含义。 Header 每一篇crash report都有一个header。...你应该运行Profile,仔细分析一下extension的各部分消耗时间,把耗时较多的逻辑放到background或者推迟(推迟到extension加载完毕)。

1.7K20

了解和分析iOS Crash

新机型的发布又会让适配相关的同学忙上一阵子啦,并且iOS Crash的问题始终伴随着移动开发者。本文将从三个阶段,由浅入深的介绍如何看懂并分析一篇crash报告,一起身临其境去读懂它吧。...当app发生crash时会产生crash report,这对我们定位crash的原因非常有帮助。该篇重点介绍了如何符号化、看懂并解析一篇crash Report。...App发布指南里的分析Crash Reports讨论了如何查看那些crash report,这些report既包含通过TestFlight下载的测试用户处获得,又包含通过App Store下载的正式用户处获得...分析Crash report 这段将会讨论一篇标准crash report的各章节的含义。 Header 每一篇crash report都有一个header。...你应该运行Profile,仔细分析一下extension的各部分消耗时间,把耗时较多的逻辑放到background或者推迟(推迟到extension加载完毕)。

1.4K30

【Android】NDK开发Crash分析

,所有没有权限读取到/data/tombstones日志,本次Crash case使用Logcat日志分析问题;可以看到,日志内容主要由下面几部分组成:(最主要的就是分析崩溃的过程和PID,终止的信号和故障地址和调用堆栈部分...掉的,名称的属性则表示Crash进程的名称以及在文件系统中位置。...调用堆栈信息 调用栈信息是分析程序崩溃的非常重要的一个信息,它主要记录了程序在Crash前的函数调用关系以及当前正在执行函数的信息,上面例中的backtrace的信息如下所示: 2022-11-21 16...这个工具能自动分析tombstone文件,能将崩溃时的调用内存地址和C++代码一行一行对应起来。...,objdump 则是可以在汇编层对崩溃原因进行分析

1K40

了解和分析iOS Crash Report

当app发生crash时会产生crash report,这对我们定位crash的原因非常有帮助。这篇文档重点介绍了如何符号化、看懂并解析一篇crash Report。...App发布指南里的分析Crash Reports讨论了如何查看那些crash report,这些report既包含通过TestFlight下载的测试用户处获得,又包含通过App Store下载的正式用户处获得...App Store在符号化crash report后会把内部所有的crash reports做汇总并分组,这种聚合(相似crash report)的方法叫做crash聚类。...分析Crash report 这段将会讨论一篇标准crash report的各章节的含义。 Header 每一篇crash report都有一个header。...你应该运行Profile,仔细分析一下extension的各部分消耗时间,把耗时较多的逻辑放到background或者推迟(推迟到extension加载完毕)。

1.6K20

AudioTrack引发的应用Crash分析

问题背景 crash的堆栈如下: signal: 11 (SIGSEGV), code: 1 (SEGV_MAPERR) fault addr: 0x7434a00010 si_errno:0, si_errnoMsg...google上搜了下,也有对应的issue,不过没有fix:https://issuetracker.google.com/issues/234934924 其他信息就没有了,那既然别人没分析出来我们要不要分析...当然要,接下来就开始狂飙一样的分析 分析过程 阶段1 堆栈上看是crash到setVolume上了,这个是设置系统硬件音量,我们的业务是绝对不会设置硬件音量,这个就是一个疑点了。...从操作时序上看,每次crash都是先看到析构AudioTrack的信息,然后再看到setVolume的信息,然后就crash了,很自然想到就是操作已经释放的了AudioTrack了,实际上也的确是的。...阶段2 接下来只能从源码角度分析了,首先找到PlayerBase的setVolume: binder::Status PlayerBase::setVolume(float vol) { ALOGD

85930

slave crash unsafe常见问题分析

master_info_repository relay_log_info_repository sync这些信息的频率参数 sync_master_info sync_relay_log_info 本文主要分析由于...「第二部分 分析」 slave crash后建立主从报错的原因可能是因为slave crash前后实例相关状态信息不一致造成的,而这些可能出现的不一致主要是MySQL中的非事务操作(主要表现为非原子性)...下面来分析它们的不一致行为以及这些不一致行为可能造成的问题。...master.info`文件,但不会sync| |   /-- my_sync # 每执行sync_master_info次Rpl_info_file::do_flush_info时,会执行这一步 下面分析在...下面是分析过程中两个slave crash后不一致案例: 案例ID 主从同步多少个event后导致crash crash时slave上master info中relay log位点信息 crash时slave

74310

UITabbarController 偶现启动crash问题分析

问题背景 最近新版本发布后,出现了一个偶现的crash并且迅速增加为Top1,这里对该问题做一个分析。...crash堆栈如下: 问题分析 APM分析 首先是查看APM提供的信息,没有系统聚集、没有机型聚集,是版本新增问题都是隐私界面(也就是新用户冷启场景)。...多维分析 由于crash出现在系统的UITabBarController类,无法调试获取更多信息,逆向排查周期太长。这里可以通过Slardar的信息,结合日志和业务场景逐步缩小排查范围。...首先通过crash场景,我们猜测是在用户新用户冷启才会遇到,这里通过回捞日志和crash的pv/uv相比可以确定; 其次通过排查新用户冷启场景的特有逻辑,关注点放在新版本相关的代码和实验改动,发现在底...反向分析 当问题可以稳定复现后,就可以进一步分析逻辑上的缺陷。 首先是vc的复用逻辑分析: App在启动时就要初始化tabbarVC,并且在后续会刷新底tab的数量。

76840

使用addr2line分析Native Crash

在Android NDK开发中,Native层的崩溃信息不像Java层的崩溃堆栈那样可以直接看到出现问题的函数名和行数 如上图所示的Native Crash例子,我们需要一些NDK提供的工具将函数地址解析为具体的函数名和行数才能进一步分析问题...将C++源代码转换为C++ ABI标识符的过程称为mangle,相反的过程称为demangle 以Linux下的g++为例,每个方法都以_Z开头,比如_Z3foov就是函数foo(),v表示参数类型为void...其中NDK中的aarch64-linux-android-c++fil(和addr2line同一个目录)是专门用来支持Demangle的 addr2line使用示例 新建一个带C++的Android Studio...后面的信息,同时带"pc"和"/data"的行基本就是app相关的崩溃行了 除了最后一个是被strip了符号的so,前三个so文件都是可以的 终端中使用addr2line转换地址 aarch64-linux-android-addr2lin...解析结果 定位到具体的函数名和行数后就可以进一步排查问题了 Crash堆栈解析脚本 日常工作或者学习中还是使用一个python脚本来解析带crash堆栈的文件比较方便 #!

1.8K10
领券