当前位置: 首页 > news >正文

iOS错误报告中关于崩溃地址的分析

一、错误报告中的三种地址:
stack address
load address
symbol address


1)stack address
同意词:runtime address
从操作系统的堆栈0点算起,


2)load address
同意词或近意词:base address, slide address,start address
应用堆栈在操作系统堆栈中的起点。


3)symbol address
同意词:relative address
以load address为起点算起的偏移量。
注意:在崩溃报告中,此值为stack address - load address。
在dSYM文件中,一般设定load address为0x4000,这个值可用otool查。
所以在用symbol address在dSYM文件中查找对应的symbol时,需要 加 0x4000。


二、两种格式的崩溃报告:
1、
appname  0x97525 appname + 615717
2、
appname 0x97525   0x29000    + 615717


两种格式的对比:
app name  0x97525(stack address)                                           appname   + 615717 (symbol address)
appname   0x97525(stack address)  0x29000(load address)                      + 615717(symbol address)


一定注意计算时进制转换:symbol address是10进制,其它两个是16进制,以0x开头。


两种格式的区别就是第一种比第二种少了load address。


三、
三个地址间的运算关系:  
symbol_address  =  stack_address  -  load_address
由此可以推算出:
load_address =  stack_address - symbol_address


四、由地址得到symbol的命令:
命令行中的地址都必须转为16进制。
1、atos -o  appname.app.dSYM/Contents/Resources/DWARF/appname -arch armv7  symbol_address + 0x4000
3、atos -o MyApp.app/MyApp -arch armv7 -l stack_address load_address
2、dwarfdump -arch armv7 appname.app.dSYM --lookup  symbol_address + 0x4000

相关文章:

  • 原来Windows下面也有硬链接
  • 程序员将是人类最后一个被人工智能代替的工作
  • JNDI配置原理详解
  • 利用layer的FillRule属性生成一个空心的layer
  • 最近做的一个手机上的联网应用程序
  • Parse开源了自己的SDK
  • 微信和百度地图都不支持iOS6了
  • 恶搞的NVIDIA驱动
  • 由身份证号码取生日和性别
  • 一个技术牛人的下场
  • AFNetworking向服务端上传空文件
  • linux 网络配置
  • 新建长度为0的NSData
  • 复原iOS应用的权限设置
  • 如何通过tomcat入侵远程计算机系统
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Elasticsearch 参考指南(升级前重新索引)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • go append函数以及写入
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL用户中的%到底包不包括localhost?
  • PHP的类修饰符与访问修饰符
  • React组件设计模式(一)
  • spring boot下thymeleaf全局静态变量配置
  • Spring-boot 启动时碰到的错误
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue全家桶实现一个Web App
  • 搭建gitbook 和 访问权限认证
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​TypeScript都不会用,也敢说会前端?
  • #pragma multi_compile #pragma shader_feature
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (30)数组元素和与数字和的绝对差
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (篇九)MySQL常用内置函数
  • (十一)手动添加用户和文件的特殊权限
  • (一)基于IDEA的JAVA基础1
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET中两种OCR方式对比
  • .考试倒计时43天!来提分啦!
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [BJDCTF 2020]easy_md5