dSym 的 iPhone 崩溃日志未加载调试信息
我试图了解为什么我的应用程序使用随可执行文件生成的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现这很有帮助:
http://www.anoshkin .net/blog/2008/09/09/iphone-crash-logs/
I have found this helpful:
http://www.anoshkin.net/blog/2008/09/09/iphone-crash-logs/
为了获取调试信息进行了多次徒劳的重试后,我决定从头开始创建一个新项目并将所有内容重新添加到其中。现在效果很好。所以可能是某种隐藏的设置导致了它的行为。我不知道那是什么,但我仍然很好奇。
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.