6

我最近在尝试符号化 iOS 应用程序的崩溃日志时遇到了麻烦。由于某种原因,dSYM 的 UUID 未在 Spotlight 中编制索引。在一些手动搜索和健康剂量的命令行咒语之后,我设法部分表示了崩溃日志。

起初我认为 dSYM 可能是不完整的或类似的东西,但后来我意识到缺少的方法调用是 C++ 代码中发生的那些:这个项目是一个调用 C++ 库的 Objective-C 应用程序(通过 Objective-C++)它回调到 Objective-C 代码(同样,通过 Objective-C++ 代码)。具体来说,我缺少的调用是发生在 C++ 领域的调用。

所以,我的问题是:符号化过程是否有某种方法可以解决 C++ 代码的函数调用?我需要设置哪些特殊选项(如果有)?

4

3 回答 3

0

尝试

dwarfdump --lookup=0xYOUR_ADRESS YOUR_DSYM_FILE

您将不得不手动查找每个地址(或编写脚本来执行此操作),但如果符号正常(您的 dSym 文件大于 20MB),这将完成这项工作。

于 2012-10-18T18:02:47.563 回答
0

我不精通Objective-C,但我会确保C++ 代码是用符号编译的。特别是,您是否确保在编译 C++ 代码时包含 -rdynamic 和/或 -g?

于 2012-06-24T16:54:32.637 回答
0

苹果 sdk 附带的一个有用的程序是atos(地址到符号)。基本上,这就是你想要做的:

atos -o myExecutable -arch armv7 0x(address here)

它应该打印出该地址的符号名称。

于 2012-06-24T16:49:20.313 回答