- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Coredump 简介及使用
Coredump 简介及使用
DOCUMENT HISTORY
Vers Date Author Type of Modification
ion
1.0 04/27/15 Vincent Song Creation
SWD2-FRAEMWORK/VINCENT SONG/ 2015-04-27 16:44/V1.0 1
Coredump 简介及使用
目录
目录
Coredump 简介及使用1
目录2
一、什么是Coredump 3
二、Coredump 产生的原因3
三、如何控制产生Coredump 4
四、使用Coredump 的准备4
五、开始使用Coredump 5
SWD2-FRAEMWORK/VINCENT SONG/ 2015-04-27 16:44/V1.0 2
Coredump 简介及使用
一、什么是Coredump
有些C/C++程序或者通过JNI 调用了C/C++ 的APK 程序可以通过编译, 但在运
行时会出现错误,比如常见的signal 11 (SIGSEGV),这样的程序都是可以通过编
译的,而且这样的错误一般情况下不会像编译错误一样告诉你具体在代码的那一
行有问题,所以调试起来比较困难和麻烦。
因为上面的这种debug 困难的情况,所以就产生了coredump 这种机制 (很
多操作系统都支持这种机制,并不是Linux 独有,也不是专门为Android 而生),
系统 (或者标准库)在发现程序错误的异常退出时,就会把程序当时整个进程的
状态dump 出来,生成一个coredump 文件,通常情况下coredump 包含了程序
运行时的内存,寄存器状态,堆栈指针,内存管理信息等,可以理解为把程序
工作的当前状态存储成一个文件,很幸运,我们现在使用 Android 系统是基于
Linux 内核,Linux 内核原生就支持这种机制。
二、Coredump 产生的原因
造成程序coredump 的原因很多,这里根据以往的经验总结一下:
1、内存访问越界
a) 由于使用错误的下标,导致数组访问越界
b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正
常的使用结束符
c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp 等字符串操作函数,将目标字
符串读/ 写爆。应该使用 strncpy, strlcpy, strncat, strlcat, snprintf, strncmp,
strncasecmp 等函数防止读写越界。
2、多线程程序使用了线程不安全的函数
第1 类:不保护共享变量的函数
第2 类:保持跨越多个调用的状态函数
第3 类:返回指向静态变量指针的函数
第4 类:调用线程不安全函数的函数
3、多线程读写的数据未加锁保护
一个线程做完条件判断准备使用时发生了调度,另外一个线程将其释放
并置空或者修改了内容,就会导致程序执行流错乱,要么指针异常,要
么状态错乱发生另外的异常
4 、非法指针
a) 使用空指针
b) 随意使用指针转换。一个指向一段内存的指针,除非确定这段内存原先就分配
为某种结构或类型,或者这种结构或类型的数组,否则不要将它转换为这种结
您可能关注的文档
- ch3_类和对象的基本概念.ppt
- ch04_调试及错误处理.docx
- Ch4 供求弹性与其应用.ppt
- 第一章 (人教版)高考语文常见病句辨析(成分残缺、搭配不当)_898.ppt
- 第一章 (瑞源国际有限公司).pdf
- 第一章 (三)Apk改之理(Apk IDE)使用常见问题~~~!.doc
- ch4 数据库的设计和创建.ppt
- ch5_树与二叉树.ppt
- ch7 二叉树与其应用.ppt
- 第一章 (十二)—— 索引表模式.pdf
- CorelDRAW标注和尺寸.doc
- 第一章 (筑龙)工程造价管理系统——常见问题汇总.pdf
- cpp10-模板和泛型编程.ppt
- 案例1 宝马E90发电机故障详解.doc
- 第一章 (抓住根基)2014届高考语文总复习 简明、连贯、得体同步教材课件 新人教版.ppt
- 第一章 .NET Framework 3.5 SP1 离线安装方法.docx
- 第一章 .NET Framework 3.5 安装错误:0x800F0906、0x800F081F、0x800F0907.docx
- 第一章 .NET Framework第二天.pptx
- 案例二 猜数字游戏详解.ppt
- CPT系统能量和信号混合传输技术.pdf
最近下载
- 滴滴出行DIDI美国IPO上市路演PPT.pdf VIP
- 安徽灿松工程技术有限公司招聘简章.PDF VIP
- 2026届高考英语应用文写作分类练(含答案).docx VIP
- 劳动人事部关于改由各主管部门审批提前退休工种的通知(劳人护〔1985〕6号).doc VIP
- DB11_T 1008-2024 建筑光伏系统安装及验收规程.pdf VIP
- 2025年招飞英语测试题及答案.doc VIP
- 2025《氨法烟气脱硫工艺的主要工艺设备计算及选型分析案例》6500字.docx
- 外研版(2024)新教材小学四年级英语上册Unit 4 第1课时 Get ready教学课件.pptx
- 高频精选:立讯精密ai面试题库及答案.doc VIP
- NFPA 855-2023 固定储能系统安装标准 2023版(中文翻译).docx VIP
原创力文档


文档评论(0)