详细信息中展示了聚合到当前崩溃名称中的所有错误实例,每条实例代表一个发生此错误的设备。查看崩溃/卡顿/异常/自定义详细信息步骤一致,下文以查看崩溃详细信息为例。
操作步骤
登录EMAS管理控制台,查找您的项目,单击项目,进入EMAS概览页。
在顶部导航栏,选择研发工具。
在页面左侧导航栏选择应用监控-崩溃分析,选择崩溃或卡顿或异常。
设置需要的筛选项,单击查询。
在崩溃列表位置处,单击某条崩溃名称,可进入崩溃聚合分析页面。
页面介绍
详细信息页面左侧展示同一崩溃名称中的所有错误实例。单击某一条数据,右侧展示此条崩溃信息的基本信息、错误堆栈、现场数据、ConsoleLog、自定义日志、进程信息、符号表等相关信息。
页面功能项
页面提供重新符号化和搜索个例功能。
重新符号化:对符号化进行重置。
搜索个例:崩溃个例按照设备的Utdid搜索。
基本信息
基本信息显示每条实例代表一个发生此错误的设备信息。
参数 | 说明 |
Utdid | 发生此类崩溃设备的Utdid。 |
用户ID | 发生此类崩溃设备的用户ID。 |
应用版本 | 发生此类崩溃设备的App版本。 |
用户昵称 | 发生此类崩溃设备的用户昵称。 |
设备名称 | 发生此类崩溃设备的设备名称。 |
系统版本 | 发生此类崩溃设备的系统版本。 |
上报时间 | 发生此类崩溃设备的上报时间。 |
崩溃时间 | 发生此类崩溃设备的崩溃时间。 |
启动时间 | 发生此类崩溃设备的启动时间。 |
错误堆栈
错误堆栈详细展示当前崩溃发生时上报数据的崩溃堆栈日志详情信息,是分析解决崩溃问题最直接的信息。
未上传符号表,展示的是原始堆栈;上传符号表解析后,展示还原后的堆栈。
如果符号表或解析有误,可在符号表界面单击重新符号化。
还原后堆栈默认展开崩溃发生的线程堆栈,如当前线程堆栈无法定位问题,可以点击展开调用栈来查看其他线程堆栈。
支持堆栈搜索、完整堆栈的下载,完整堆栈和线程堆栈的复制功能。
现场数据
当前选项还原了此条崩溃信息的现场,包括基础信息、内存信息和自定义数据。
基础信息
参数 | 说明 |
appKey | 接入崩溃分析时使用的AppKey。 |
应用版本 | 接入崩溃分析时传入的应用版本。 |
构建号 | 在Android系统中指VersionCode,iOS系统中指BundleVersion。 |
渠道 | 接入崩溃分析时传入的渠道标识。 |
聚合ID | 本次崩溃的同类崩溃聚合ID。 |
上报时间 | 上报时间,服务端时间。 |
启动时间 | App启用时间,客户端时间。 |
崩溃时间 | 崩溃发生时间,客户端时间。 |
品牌 | 崩溃发生设备的品牌。 |
机型 | 崩溃发生设备的型号标识。 |
操作系统 | 崩溃发生时设备的操作系统。 |
操作版本 | 崩溃发生时设备的操作系统版本。 |
运营商/网络 | 崩溃发生时设备接入的运营商和网络信息。 |
国家/地区 | 崩溃发生时设备所处的地理位置,根据IP推算。 |
省份/地市 | 崩溃发生时设备所处的省份、地市。 |
用户IP | 崩溃发生时设备的公网IP。 |
分辨率 | 崩溃发生设备的屏幕分辨率。 |
页面 | 崩溃发生时App打开的页面。 |
是否是前台 | 崩溃是否发生在前台进程。 |
是否是主线程 | 崩溃是否发生在主线程。 |
进程名 | 崩溃进程的名称。 |
父进程名 | 崩溃进程的父进程名称。 |
CPU架构 | 崩溃发生时设备所用的CPU架构。 |
语言 | 崩溃发生时设备所用的语言。 |
内存信息
上报样本的现场内存状态,展示了发生崩溃时的存储信息。
Android
参数 | 说明 |
dalvikPss | Java堆部分的按比例分配后内存使用量(PSS),用于衡量Java堆实际消耗的物理内存。 |
dalvikPrivateDirty | Java堆部分的私有脏页内存,本进程独享且已被修改。 |
dalvikSharedDirty | Java堆部分的共享脏页内存,被多个进程共享且已被修改。 |
summary.javaHeap | Java堆部分的内存总量,用于衡量进程分配给Java堆的内存消耗。 |
nativePss | Native堆部分的按比例分配后内存使用量(PSS),用于衡量Native堆实际消耗的物理内存。 |
nativePrivateDirty | Native堆部分的私有脏页内存,本进程独享且已被修改。 |
nativeSharedDirty | Native堆部分的共享脏页内存,被多个进程共享且已被修改。 |
summary.nativeHeap | Native堆部分的内存总量,用于衡量进程分配给Native堆的内存消耗。 |
otherPss | 其他部分的按比例分配后内存使用量(PSS),用于衡量除Java和Native之外其他模块(资源映射、第三方库等)实际消耗的物理内存。 |
otherPrivateDirty | 其他部分的私有脏页内存,本进程独享且已被修改。 |
otherSharedDirty | 其他部分的共享脏页内存,被多个进程共享且已被修改。 |
summary.privateOther | 其他部分的私有内存总量。 |
summary.code | 代码段内存使用量,用于衡量应用代码段和只读数据等的内存消耗。 |
summary.stack | 栈内存使用量,用于衡量进程或线程栈的内存消耗。 |
summary.graphics | 图形相关内存使用量,用于衡量进程占用的 OpenGL 显存、SurfaceFlinger 等图形模块的内存消耗。 |
summary.system | 系统相关内存使用量,用于衡量如 ashmem、binder、ION 等系统分配的内存消耗。 |
summary.totalPss | 进程全部内存的 PSS 总量。(等价于totalPss) |
summary.totalSwap | 进程使用的 Swap 空间总量。 |
totalPss | 进程全部内存的 PSS 总量。 |
totalSwappablePss | 进程全部可交换内存的 PSS 总量。 |
totalPrivateClean | 全部内存中的私有干净页内存,本进程独享且未被修改。 |
totalPrivateDirty | 全部内存中的私有脏页内存,本进程独享且已被修改。 |
totalSharedClean | 全部内存中的共享干净页内存,被多个进程共享且未被修改。 |
totalSharedDirty | 全部内存中的共享脏页内存,被多个进程共享且已被修改。 |
iOS
参数 | 说明 |
active | 当前系统中被活跃使用的内存量,以字节为单位。 |
inactive | 当前系统中被标记为非活跃使用的内存量,以字节为单位。 |
wired | 当前系统中被固定使用的内存量,以字节为单位。 |
free_mem | 当前系统中未被使用且可立即分配的内存量,以字节为单位。 |
total_mem | 当前设备的物理内存总量,以字节为单位。 |
virtual | 当前所占用的虚拟内存总量,以字节为单位。 |
resident | 当前驻留在物理内存中的实际内存量,以字节为单位。 |
footprint | 应用程序在物理内存中实际占用的总内存量,以字节为单位。 |
HarmonyOS NEXT
参数 | 说明 |
pss | Proportional Set Size,实际使用的物理内存,并根据共享库的引用次数进行比例分配。 |
rss | Resident Set Size,实际使用物理内存,包括共享库占用的内存。 |
vss | Virtual Set Size,虚拟耗用内存,包括共享库占用的内存。 |
sys_avail_mem | 系统可用的内存量。 |
sys_free_mem | 系统空闲内存量。 |
sys_total_mem | 系统总内存量。 |
自定义数据
展示崩溃发生时通过SDK回调来上报的自定义字段的属性,以协助应用实现自定义分析。
支持在筛选项中通过自定义维度筛选该部分数据。
页面追踪
当前仅iOS端支持该功能。
展示崩溃前用户的页面操作,按照时间距离崩溃由近及远顺序展示。
Consolelog
支持安卓端和鸿蒙端。
展示崩溃发生前后上报样本的现场控制台数据日志。
自定义日志
展示崩溃发生时通过SDK回调来上报的自定义日志。
接入远程日志后,点击回捞该设备日志,将快速创建日志回捞任务。
进程信息
仅安卓端崩溃上报该信息,iOS和鸿蒙端不上报。
展示崩溃发生时与进程相关的信息,包括Maps信息、进程状态。
Maps信息展示用户进程运行时的内存映像,能够查看到当前进程空间的映射情况。支持通过地址和访问权限来过滤筛选指定的内存段。
进程状态展示崩溃时进程状态的详情列表。
符号表
符号表文件上传到崩溃分析控制台,可以使用符号表文件解混淆崩溃调用栈,便于问题分析和解决。
符号表支持重新上传和下载。