crashdump(怎样解决crash dump error)
本文目录
怎样解决crash dump error
Memory错误在内核中,内存是以cache的形式组织的,每个对象类型对应一个cache,如(inod_cache,dentry_cache, buffer_head,vm_area_strutct等);每个cache包含多个slab(slab由一个或多个页组成,这些页物理上是连续的);每个slab包含多个初始化的对象。Cache可以分为两类【kmalloc使用的和其他】,当然他们是用同一个函数创建的。1.Crash》 Kmem -sCACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZEee2bb0c0 scsi_sense_cache 120 2 32 1 4kee2bbac0 scsi_cmd_cache 176 2 22 1 4kee000c60 size-4194304 4194304 0 0 0 4096kee000bc0 size-2097152 2097152 0 0 0 2048kee000b20 size-1048576 1048576 1 1 1 1024kee000a80 size-524288 524288 0 0 0 512kee0009e0 size-262144 262144 0 0 0 256kee000940 size-131072 131072 1 1 1 128kee0008a0 size-65536 65536 2 2 2 64kee000800 size-32768 32768 1 1 1 32kee000760 size-16384 16384 9 9 9 16kee0006c0 size-8192 8192 10 10 10 8kee000620 size-4096 4096 26 44 44 4kee000580 size-2048 2072 53 60 20 8kee0004e0 size-1024 1048 332 343 49 8kee000440 size-512 536 771 798 114 4kee0003a0 size-256 280 54 84 6 4kee000300 size-192 216 734 756 42 4kee000260 size-128 152 2301 2314 89 4kee0001c0 size-32 56 13439 13668 204 4kee000120 size-96 120 1067 1120 35 4kee000080 size-64 88 3137 3168 72 4k调用函数kmalloc(xxx)得到的memory都来名字为size-xx的cache.2.CONFIG_DEBUG_SLAB为便于调试,在每个对象可以添加SLAB_RED_ZONE,添加这块内存的最后使用者SLAB_STORE_USER,且用SLAB_POISON初始化对象。这些特殊的元素是什么?Include/linux/poison.h/**Magic nums for obj red zoning.*Placed in the first word before and the first word after an obj.*/#define RED_INACTIVE 0x09F911029D74E35BULL /*when obj is inactive */#define RED_ACTIVE 0xD84156C5635688C0ULL /*when obj is active *//*...and for poisoning */#define POISON_INUSE 0x5a /*for use-uninitialised poisoning */#definePOISON_FREE 0x6b /* foruse-after-free poisoning */#define POISON_END 0xa5 /*end-byte of poisoning */3.log | tail xxx当slab出错时,会把cachename/ objecet的开始地址(没有考虑redzone)redzone的内容/lastuser和object的内容都会打印出来,另外还包含该对象前后对象的信息。 Slab corruption (Not tainted): size-64 start=e74b3398,len=64 Redzone: 0x9f911029d74e35b/0x9f911029d74e35b.(__DWC_FREE+0x1c/0x20) 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b d8 b0 54 e8 kkkkkkkkkkkk..T. Prev obj: start=e74b3340, len=64 Redzone: 0xd84156c5635688c0/0xd84156c5635688c0.(binder_get_ref_for_node+0x6c/0x204) 000: 47 34 00 00 2c 8b e5 e7 00 00 00 00 00 00 00 00 G4..,........... 010: f1 31 4b e7 50 83 e5 e7 10 46 61 e7 00 00 00 00 .1K.P....Fa..... Next obj: start=e74b33f0, len=64 Redzone: 0xd84156c5635688c0/0xd84156c5635688c0.(copy_creds+0x108/0x1e4) 000: 01 00 00 00 5a 5a 5a 5a 00 00 00 00 5a 5a 5a 5a ....ZZZZ....ZZZZ 010: ad 4e ad de ff ff ff ff ff ff ff ff 00 00 00 00 .N..............------------ kernel BUG atmm/slab.c:2037! PREEMPT SMP ARM Modules linked in: CPU: 0 Not tainted (3.4.0-gc37fe8c-dirty #657) PC is at check_poison_obj+0x194/0x1b4 LR is at console_unlock+0x1c0/0x1d4 psr: 60000093 sp : e58e1c68 ip : e58e1a40 fp : e58e1c9c r10: e74b3398 r9 : 00000008 r8 : e74b3338 r7 : 00000040 r6 : e74b3000 r5 : e74b33e8 r4 :ee000080 r3 : 00000001 r2 : 00000010 r1 : 00000020 r0 :e74b33f0 Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: af4e404a DAC: 00000015kmem-S size-64从打印的信息siize-64start=e74b3398, 得知出问题的是cache:size-64,地址为e74b3390.4.Crash》 kmem -S cache namecrash》kmem -S size-64 | grep e74b3390crash》rd e74b3390 0x64e74b3390: 9d74e35b 09f91102 6b6b6b6b6b6b6b6b [.t.....kkkkkkkke74b33a0: 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b kkkkkkkkkkkkkkkke74b33b0: 6b6b6b6b e854b0d8 6b6b6b6b6b6b6b6b kkkk..T.kkkkkkkke74b33c0: 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b kkkkkkkkkkkkkkkke74b33d0: 6b6b6b6b a56b6b6b 9d74e35b09f91102 kkkkkkk.[.t.....e74b33e0: ff000000 c03446e8从出问题的这个object的用于debug的信息可知:redzone: 9d74e35b 09f91102 :RED_INACTIVEpoisondata: 6b : POISON_FREEusercall : c03446e85.last caller最后操作这块内存的函数为:crash》dis -r c03446e80xc03446cc《__DWC_FREE》: mov r12, sp0xc03446d0《__DWC_FREE+4》: push {r11, r12, lr, pc}0xc03446d4《__DWC_FREE+8》: sub r11, r12, #40xc03446d8《__DWC_FREE+12》: stmfd sp!, {lr}0xc03446dc《__DWC_FREE+16》: ldmfd sp!, {lr}0xc03446e0《__DWC_FREE+20》: mov r0, r10xc03446e4《__DWC_FREE+24》: bl 0xc00d51fc 《kfree》0xc03446e8《__DWC_FREE+28》: ldm sp, {r11, sp, pc}结合如下的backtrace,可知问题就是从slab申请的一个对象,但发现其中的元素不对(不是0x6b,却出现了e854b0d8,所以crash) kernel BUG at mm/slab.c:2037! Backtrace: (cache_alloc_debugcheck_after+0x3c/0x1a0)(__kmalloc+0x140/0x234) r7:00000038 r6:00008020 r5:a0000093 r4:ee000080 (__DWC_ALLOC_ATOMIC+0x20/0x24) (dwc_otg_hcd_urb_alloc+0x30/0x40) (urb_enqueue+0xf0/0x258) r4:db95faa8 r3:00000003 (usb_hcd_submit_urb+0x5c4/0x6a4) (usb_submit_urb+0x2a0/0x2bc) (usb_sg_wait+0x4c/0x138)6.解决问题从上面的分析可知,问题是memoryfree后,代码又操作了这块内存。现在问题是__DWC_FREE最后操作了这块内存,__DWC_FREE只是封装了kfree,如果直接使用kfree,通过SLAB_STORE_USER就可以知道那个函数调用了kfree,进而知道申请的对象类型,看那个该对象类型的那个成员被赋值,就可以在代码中搜索。如该例知道了类型为dwc_otg_qtd_t,且成员qh在内存释放后被赋值,就可以在代码中详细查找,分析。crash》dwc_otg_qtd_t e74b3398structdwc_otg_qtd_t {data_toggle= 0x6b,control_phase= (DWC_OTG_CONTROL_DATA | DWC_OTG_CONTROL_STATUS | unknown:1802201960),complete_split= 0x6b,ssplit_out_xfer_count= 0x6b6b6b6b,error_count= 0x6b,isoc_frame_index= 0x6b6b,isoc_split_pos= 0x6b,isoc_split_offset= 0x6b6b,urb= 0x6b6b6b6b,qh= 0xe854b0d8,qtd_list_entry= {cqe_next= 0x6b6b6b6b,cqe_prev= 0x6b6b6b6b},in_process= 0x6b,n_desc= 0x6b,isoc_frame_index_last= 0x6b6b}在相关的代码中搜索哪里操作了数据结构dwc_otg_qtd_t的qh成员。
qualcommcrashdumpmode解决办法
摘要强制按住音量下+开机按键,进fastboot模式,一加手机音量上+开机按键
成功进入fastboot模式后,我们找到一个和当前手机版本匹配的boot或者rec文件,然后重
新刷入正确的文件,再次重启手机
方法2:强制9008模式进行救砖,彻底摆脱手机变砖(数据也会清空)
相对于方法1来说,9008刷机更加彻底,但数据会丢失,并且驱动需要安装完整,不同手
机9008模式进入方法不同,可自己百度找到正确的方法
咨询记录 · 回答于2021-11-01
qualcommcrashdumpmode解决办法
强制按住音量下+开机按键,进fastboot模式,一加手机音量上+开机按键成功进入fastboot模式后,我们找到一个和当前手机版本匹配的boot或者rec文件,然后重新刷入正确的文件,再次重启手机方法2:强制9008模式进行救砖,彻底摆脱手机变砖(数据也会清空)相对于方法1来说,9008刷机更加彻底,但数据会丢失,并且驱动需要安装完整,不同手机9008模式进入方法不同,可自己百度找到正确的方法
感谢您的提问,祝您生活愉快
Crashdump什么意思
Crash dump具有崩溃转储、故障转储、系统崩溃后的内存倾倒等意思。
Crash dump:
1、Crash dump是一个英语名词性词组。
2、Crash dump属于计算机术语。
3、Crash dump的英式读音是。
4、Crash dump的例句:
(1)Crash dump exists in paging file.
面文件存有崩溃转储。
(2)You will need to be running a kernel debugger or to analyze the crash dump after the fact to isolate the cause of the failure.
在离析出这个失败原因之后,你需要运行一个内核调试器或者分解这个崩溃垃圾堆。
(3)Crash dump support improved:extracting kernelmode output from are fixed and DebugView now loads resulting log files.
崩溃转储支持改善:一些相关的错误中提取内核模式输出的崩溃转储是固定的,现在的DebugView造成出现了日志文件。
扩展资料
crash的意思:
1、crash作为形容词的意思是应急的、速成的。
2、crash作为名词的意思是撞车、碰撞、相撞、(破碎等突然的)碰撞声、破裂声、碎裂声、暴跌、倒闭、破产、失败。
dump的意思:
1、dump作为动词的意思是抛弃、(尤指在不合适的地方)丢弃、丢下、扔掉、倾倒、推卸、(向国外)倾销,抛售。
2、dump作为名词的意思是尾矿堆、垃圾场、废物堆、脏地方、废渣堆、邋遢场所、令人讨厌的地方。
更多文章:
![玖富贷款平台是正规平台吗?玖富金融发发短信说通过EMS寄件到家里了真的假的](/static/images/nopic/15.jpg)
玖富贷款平台是正规平台吗?玖富金融发发短信说通过EMS寄件到家里了真的假的
2024年1月22日 04:45
![painter12(Corel Painter 12试用期已经过了,怎么破解)](/static/images/nopic/3.jpg)
painter12(Corel Painter 12试用期已经过了,怎么破解)
2024年2月24日 20:00
![跪求beyond的所有专辑无损下载?哪儿可以下载周杰伦的所有专辑歌曲专辑下载 谢谢!!](/static/images/nopic/29.jpg)
跪求beyond的所有专辑无损下载?哪儿可以下载周杰伦的所有专辑歌曲专辑下载 谢谢!!
2024年3月6日 22:50
![antiphishing(按了360卫士后在d盘出现AntiPhishing文件夹了而且无法删除)](/static/images/nopic/21.jpg)
antiphishing(按了360卫士后在d盘出现AntiPhishing文件夹了而且无法删除)
2024年5月24日 02:27
![美女头像大全(女生头像图片,网上很火的一个女生很多人用她的照片当头像)](/static/images/nopic/23.jpg)
美女头像大全(女生头像图片,网上很火的一个女生很多人用她的照片当头像)
2024年6月6日 05:36
![mtk6575(ARM Cortex-A9 MTK6575是什么处理器)](/static/images/nopic/23.jpg)
mtk6575(ARM Cortex-A9 MTK6575是什么处理器)
2024年6月25日 22:15
![realtek ac97声卡驱动(关于realtek ac97声卡驱动)](/static/images/nopic/23.jpg)
realtek ac97声卡驱动(关于realtek ac97声卡驱动)
2023年11月9日 06:30
![po18自由的小说阅读器在线阅读网(po18到底是个软件还是网站)](/static/images/nopic/9.jpg)
po18自由的小说阅读器在线阅读网(po18到底是个软件还是网站)
2024年6月29日 11:33
![12306能买船票了(12306新增购船票功能,该功能的使用率如何)](/static/images/nopic/6.jpg)
12306能买船票了(12306新增购船票功能,该功能的使用率如何)
2024年6月27日 04:14
![microsoft edge是ie浏览器吗?微软edge浏览器怎么调兼容性](/static/images/nopic/2.jpg)
microsoft edge是ie浏览器吗?微软edge浏览器怎么调兼容性
2024年1月9日 21:50
![我想收集些精美的《仙剑奇侠传三》电视剧的照片?仙剑3花楹图片(兽型的)](/static/images/nopic/29.jpg)
我想收集些精美的《仙剑奇侠传三》电视剧的照片?仙剑3花楹图片(兽型的)
2023年11月21日 03:35
![microsoft office visio(我安装了visio 找不到在那儿 程序里没有 急急)](/static/images/nopic/21.jpg)
microsoft office visio(我安装了visio 找不到在那儿 程序里没有 急急)
2023年11月6日 19:26