是否可以象征C ++代码?

时间:2012-06-20 22:23:30

标签: c++ objective-c xcode4 objective-c++ symbolicatecrash

我最近遇到了麻烦,试图象征iOS应用的崩溃日志。由于某种原因,dSYM的UUID未在Spotlight中编入索引。经过一些手动搜索和健康的命令行咒语后,我设法将崩溃日志部分地用于表示。

起初我认为dSYM可能是不完整的或类似的东西,但后来我意识到缺少的方法是C ++代码中出现的:这个项目是一个调用C ++库的Objective-C应用程序(通过Objective -C ++)回调Objective-C代码(再次,通过Objective-C ++代码)。我缺少的电话,特别是那些在C ++中发生的电话。

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

3 个答案:

答案 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),这将完成这项工作。