dSym 的 iPhone 崩溃日志未加载调试信息

发布于 2024-08-31 10:24:10 字数 960 浏览 8 评论 0原文

我试图了解为什么我的应用程序使用随可执行文件生成的 dSym(临时)在设备(iPhone)上崩溃,但我不知道为什么,没有任何有用的信息。似乎“组织者”能够找到合适的 dSym 并将一些数据转换为更可读的数据,但是当涉及到我的应用程序时,我只有一个地址。

因为我知道如何重现它,所以我尝试设置我的构建,以便它可以在将来帮助我。因此,我尝试查找是否在项目构建属性中设置了所有正确的标志,一切似乎都很好。因此,经过一些研究后,似乎所有信息在链接期间都被剥离,并且 dSym 似乎完全无用。我玩过一些旗帜,但没有任何改变。

那么,是否需要做一些特殊的事情才能使崩溃文件可读?或者在临时环境中这是不可能的?我所做的最接近工作的事情是构建一个调试版本并查找其中的地址。至少它似乎提供了正确的文件。所以,我制作了一个示例应用程序,这里有:(我想要的行是#4):

Thread 0 Crashed:
0   libobjc.A.dylib                0x00003ebc objc_msgSend + 20
1   UIKit                          0x0005c970 -[UIView dealloc] + 60
2   UIKit                          0x0005c840 -[UIImageView dealloc] + 76
3   CoreFoundation                 0x0003963a -[NSObject release] + 28
4   MyApplication                  0x000046a6 0x1000 + 13990
5   UIKit                          0x00069750 -[UIViewController view] + 44
6   MyApplication                  0x000053fa 0x1000 + 17402

崩溃是通过对对象进行两次连续释放来实现的。

提前致谢。

I was trying to see why my application crashed on the device (iPhone) using the dSym generated along the executable (in ad hoc), but I don't know why, there isn't any useful information. It seems that "Organizer" is able to find the appropriate dSym and translate some data into more readable one, but when it comes to my application, I just have an address.

Since I know how to reproduce it, I've tried to setup my build so it can help me in the future. So, I've tried to find if I had all the proper flags set int the project build properties and everything seems fine. So after doing some research, it seems that all information are stripped during link time and the dSym seems completely useless. I've played with some flags, but nothing changed.

So, is there something special to do in order to get the crash file human readable? Or is it impossible in the ad hoc setting? The closest thing near to work that I've done was to build a debug version and look up the address in it. At least it seems to give the right file. So, I made a sample app and here what I have: (the line I want is #4):

Thread 0 Crashed:
0   libobjc.A.dylib                0x00003ebc objc_msgSend + 20
1   UIKit                          0x0005c970 -[UIView dealloc] + 60
2   UIKit                          0x0005c840 -[UIImageView dealloc] + 76
3   CoreFoundation                 0x0003963a -[NSObject release] + 28
4   MyApplication                  0x000046a6 0x1000 + 13990
5   UIKit                          0x00069750 -[UIViewController view] + 44
6   MyApplication                  0x000053fa 0x1000 + 17402

The crash is made using 2 successive releases on an object.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠檬心 2024-09-07 10:24:10

为了获取调试信息进行了多次徒劳的重试后,我决定从头开始创建一个新项目并将所有内容重新添加到其中。现在效果很好。所以可能是某种隐藏的设置导致了它的行为。我不知道那是什么,但我仍然很好奇。

After many infructuous retries in order to get the debug information, I decided to create a new project from scratch and re-add everything into it. And now it works fine. So it was probably some kind of hidden settings somewhere that was making it behave like that. I don't know what it was and I'm still curious about it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文