1

我想从 Mac OS X 崩溃日志中获取信息。我按照 Apple TN2123 中Symbols 和 CrashReporter部分的说明进行操作。

当没有剥离符号时,我设法获得了崩溃的行号。

不幸的是,一旦我剥离了符号,无论STRIP_STYLE标志的值如何,我都无法获得确切的行号。从我在 TN 中读到的内容来看,这似乎是可能的。

有谁知道这是怎么做到的吗?

编辑

经过一番调查,似乎是因为我使用了静态库。如果我在应用程序目标中编译的文件发生崩溃,我可以获得行号。

但是,如果崩溃发生在来自静态库的文件中,我总是会收到“没有可用于地址的行号信息”消息。

如果我没记错的话,静态库不是与位置无关的代码,所以幻灯片是 0(对吗?)。

我应该在静态库目标中使用一些特定的标志吗?



提前致谢

凯文

4

1 回答 1

1

我在 Xcode 邮件列表上发布了这个问题,Apple 的某个人给了我一些有用的信息。

这是他的答案,有趣的部分就在那里:

另一件需要注意的是,“strip”工具从二进制文件中删除的东西是调试图。因此,您必须在构建过程中小心,在您制作 dSYM 之前不要剥离任何构建产品。如果您不正确,那么您的可执行文件的某些部分将没有任何调试信息。

我试图不剥离静态库,它就成功了。

凯文

于 2013-09-30T15:52:11.767 回答