WBBlades icon indicating copy to clipboard operation
WBBlades copied to clipboard

https://mp.weixin.qq.com/s/tGvE-2flzhm4skkrfbUIBA 对于Bugly的分析描述有误。

Open xiaocui0803 opened this issue 1 year ago • 1 comments

你好,我是Bugly的iOS端开发。 Bugly在堆栈处理过程中,是可以拿到nearest symbol信息的,通过nearest symbol+偏移来表示当前执行的指令。 RCTFBQuickPerformanceLoggerConfigureHooks+1803318 并不是代表执行了RCTFBQuickPerformanceLoggerConfigureHooks,而是表示执行了RCTFBQuickPerformanceLoggerConfigureHooks偏移1803318所在的指令。

你遇到的这些情况都是堆栈没有翻译导致的,并不是Bugly堆栈解析错误。

xiaocui0803 avatar Jul 28 '22 03:07 xiaocui0803

你好,我是Bugly的iOS端开发。 Bugly在堆栈处理过程中,是可以拿到nearest symbol信息的,通过nearest symbol+偏移来表示当前执行的指令。 RCTFBQuickPerformanceLoggerConfigureHooks+1803318 并不是代表执行了RCTFBQuickPerformanceLoggerConfigureHooks,而是表示执行了RCTFBQuickPerformanceLoggerConfigureHooks偏移1803318所在的指令。

你遇到的这些情况都是堆栈没有翻译导致的,并不是Bugly堆栈解析错误。

感谢您的反馈,当时这个堆栈我们看到之后第一反应就是找RCTFBQuickPerformanceLoggerConfigureHooks是否存在崩溃。但是我们发现它是一个空函数,从崩溃描述中看应该是一个NSIndexPath相关的崩溃,与预期不太符合。因此我们也没有从RCTFBQuickPerformanceLoggerConfigureHooks+1803318再次去计算,通过崩溃时实际地址去重新计算偏移地址解析堆栈后,结果是符合我们的预期的。 此外,在平台中其他很多崩溃堆栈也是符号名+偏移地址的方式来展示的,我们就默认认为解析结果就是RCTFBQuickPerformanceLoggerConfigureHooks+1803318,通常不会通过这个结果去再次计算。

Simplegood avatar Jul 28 '22 05:07 Simplegood

嗯, 现在是提取RCTFBQuickPerformanceLoggerConfigureHooks符号地址,然后通过符号的偏移计算问题代码行数的地址。感谢反馈

springwinding avatar Aug 28 '22 01:08 springwinding