我最近遇到了麻烦,试图象征iOS应用的崩溃日志。由于某种原因,dSYM的UUID未在Spotlight中编入索引。经过一些手动搜索和健康的命令行咒语后,我设法将崩溃日志部分地用于表示。
起初我认为dSYM可能是不完整的或类似的东西,但后来我意识到缺少的方法是C ++代码中出现的:这个项目是一个调用C ++库的Objective-C应用程序(通过Objective -C ++)回调Objective-C代码(再次,通过Objective-C ++代码)。我缺少的电话,特别是那些在C ++中发生的电话。
所以,我的问题是:符号化过程是否有某种方法可以解决C ++代码的函数调用?我需要设置哪些特殊选项?
答案 0 :(得分:0)
apple sdk附带的一个有用的程序是atos
(地址到符号)。基本上,这就是你想要做的事情:
atos -o myExecutable -arch armv7 0x(address here)
它应该在该地址打印出符号的名称。
答案 1 :(得分:0)
我不太熟悉Objective-C,但我确保用符号编译C ++代码。特别是,在编译C ++代码时,是否确保包含-rdynamic和/或-g?
答案 2 :(得分:0)
尝试
dwarfdump --lookup = 0xYOUR_ADRESS YOUR_DSYM_FILE
你必须手动查找每个地址(或编写一个脚本来执行此操作)但如果符号正常(你的dSym文件大于20MB),这将完成这项工作。