问题描述
我使用 Thread.callStackSymbol 来获取堆栈跟踪,但它不可读。 我看到了几个 StackOverflow 的答案,但没有一个有效。以下是我使堆栈跟踪可读的过程
示例堆栈跟踪: [ 0:“项目名称”,“十六进制代码(堆栈地址)”,“不太可读的方法名称+编号(偏移量)”, 1:“项目名称”,“十六进制代码(堆栈地址)”,“不太可读的方法名称+编号(偏移量)”, ]
-
在 StackOverflow 的一个答案中,我读到我需要首先使用公式 load address = stackaddress - offset 计算加载地址,然后使用 atos -o path to dSYM file -l加载地址堆栈地址 它给出了类似 "some hex code(in projectName)" 的输出,但没有在我的代码中给出正确的位置和行号
-
在我读过的另一篇 stackoverflow 文章中,我们可以使用命令 dwardump --lookup symbols address --arch architecture dSYM_file_location 并且可以使用 slide + stack address - load 计算符号地址地址,我们可以使用“_dyld_get_image_vmaddr_slide(0)”和“_dyld_get_image_header(0)”获取幻灯片和加载地址。此命令未在终端中提供任何输出
我还检查了我的 dSYM 文件的 uuid,我的应用程序都相同,而且文件也没有损坏。 我需要有关如何使其可读的帮助。
我使用 xcode 12 来构建我的应用程序,我正在从 xcode 的显示报告导航部分获取我的 dSYM 文件的位置。
目前我正在我的模拟器设备中尝试这个并使用xcode左上角的启动按钮启动我的应用程序并在调试器中记录堆栈跟踪(打印(线程.callstacksymbol))
如何使堆栈跟踪可读/缺少什么
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)