跳到主要内容

问题自查

崩溃发生,但页面没有展示上报数据

请按下图的顺序自查:

自查流程说明

  • “联网设备数”可在“异常概览”页中查看
  • (a1)请检查初始化时传入的appid和url是否正确。注意:不同平台(Android、iOS、Windows等)的appid和url是不一样的。推荐前往“接入指南”页查看初始化代码,其中的appid和url是根据项目环境自动生成的。
  • (a2)请务必保证初始化代码在崩溃/错误发生之前被调用。由于初始化时的部分操作是异步进行的,请尽可能早地初始化CrashSight,且不要在调用初始化接口后立即触发上报。以下是一个反例,请不要这么写
void OnCrashSightInit() {
// 调用初始化接口
CrashSightAgent::ConfigCrashServerUrl(url);
CrashSightAgent::InitWithAppId(appid);
// 立即触发错误上报
CrashSightAgent::ReportException(5, "name", "message", "stack", "extra message", false, 0, true, attach_file_path);
// 或者立刻触发一个测试用的崩溃
int* a = NULL;
a[10000] = 5;
}
  • (a3)确保网络畅通。除了确认连接到互联网外,还要检查防火墙及其它安全软件设置,防止上报被拦截。
  • (b1)由于触发机制不同,安卓和iOS端上的OOM(out of memory)并不会作为崩溃上报。在测试崩溃上报时,请不要使用大量申请内存的方式触发闪退。CrashSight有独立的“OOM分析”功能,可以前往体验。
  • (b2)如果您的项目中包含了多个崩溃上报组件,可能会出现兼容性问题。您可以先尝试关闭其它组件来观察是否正常上报。如果确认存在兼容性问题,可以尝试调换初始化顺序来解决,或者直接联系CrashSight项目组寻求帮助。

问题排查所需信息清单

如果自查无法解决问题,欢迎您联系CrashSight项目组寻求帮助。以下是一份问题排查所需信息的清单,推荐您尽可能收集并发送给我们,方便我们协助您定位问题:
(1) debug日志
请在初始化代码中调用ConfigDebugMode(true)打开CrashSight的debug模式,然后拉取日志,具体的:

  • 安卓端取logcat日志
  • iOS端取控制台日志,可以通过Mac自带的“控制台”应用获取
  • Windows端需要在程序包中找到CrashSight64.dll,它的同级目录下会生成一个CrashSightLog文件夹,其中包含CrashSight的运行日志

(2) 初始化代码
调用CrashSight初始化接口的相关代码

(3) 项目链接
打开CrashSight网页端,进入您的项目,直接复制浏览器上方的链接即可

堆栈无法还原

请按下图的顺序自查:

自查流程说明

  • (a1)如果您尚未上传符号表,请根据“接入指南”页中的提示上传符号表,并点击“重试还原堆栈”
  • (b1)uuid是符号表的唯一标识。您可以查看堆栈中每一行的末尾,存在一个十六进制字符串(通常为32个字符),这就是此行堆栈的模块的uuid。然后,您可以使用CrashSight符号表工具查看符号表的uuid,命令参数如下:
java -jar crashSightSymbolTool.jar -i SYMBOL_FILE_PATH -p {platform} -uuid

其中{platform}参数与您上传符号表时填写的相同。堆栈的模块uuid和符号表uuid匹配时才能还原堆栈
您也可以在“符号表”页签中方便地查看是否上传过对应uuid的符号表。

  • (b2)符号信息不全的问题常见于安卓和Windows端。
    对于安卓端,上传符号表时使用的so文件必须包含符号信息(即strip之前的so)。如果您不确定,可以查看apk包里的so大小,包含符号信息的so会比最终打入apk的so大很多。
    对于Windows端,需要保证pdb文件和对应的exe/dll文件都在指定的上传目录下。如果pdb文件和对应的exe/dll文件名字不相同,通常是因为构建系统修改了exe/dll文件的名字,请将exe/dll文件的名字修改为和pdb文件相同并重新上传。
    此外,虽然CrashSight符号表工具支持指定目录上传,但是我们强烈推荐您将上传所需的文件复制到一个单独的目录后再上传。如果上传目录中包含其它文件,可能会受到它们干扰。
  • (b3)如果符号表上传晚于崩溃上报,堆栈可能不会自动还原,点击“重试还原堆栈”重还原本条堆栈

问题排查所需信息清单

如果自查无法解决问题,欢迎您联系CrashSight项目组寻求帮助。以下是一份问题排查所需信息的清单,推荐您尽可能收集并发送给我们,方便我们协助您定位问题:
(1) 无法还原的上报链接
网页端打开该上报,复制浏览器上方的链接即可

(2) 符号表上传日志
符号表工具上传时打印的日志

(3) 用于上传的符号表文件
使用符号表工具时,-i参数指定的文件

崩溃上传成功,但是日志附件没有上传

请按下图的顺序自查:

自查流程说明

  • (1)在安卓、iOS端上,推荐使用日志上传回调设置日志路径(UE参考/Unity参考);在Windows端上请使用接口直接设置日志路径(UE参考/Unity参考)。注意:需要指定到附件的绝对路径。

  • (2)请检查指定的文件是否存在,以及是否有访问权限

  • (3)查看崩溃的“信号处理状态”字段,如果为“异常中断”,则崩溃处理流程没有执行完成,日志附件不会上传。

问题排查所需信息清单

如果自查无法解决问题,欢迎您联系CrashSight项目组寻求帮助。以下是一份问题排查所需信息的清单,推荐您尽可能收集并发送给我们,方便我们协助您定位问题:
(1) debug日志
请在初始化代码中调用ConfigDebugMode(true)打开CrashSight的debug模式,然后拉取日志,具体的:

  • 安卓端取logcat日志
  • iOS端取控制台日志,可以通过Mac自带的“控制台”应用获取
  • Windows端需要在程序包中找到CrashSight64.dll,它的同级目录下会生成一个CrashSightLog文件夹,其中包含CrashSight的运行日志

(2) 设置附件路径的代码
调用CrashSight设置附件路径接口的相关代码

(3) 崩溃链接
打开CrashSight网页端,进入没有成功上传附件的崩溃详情,直接复制浏览器上方的链接即可