我发现我的应用程序在与分配工具一起使用时崩溃。查看设备日志时,我可以看出这是“内存不足”崩溃。我的应用程序进程以及我的应用程序使用的其他进程都被抛弃。设备日志如下所示:
MyAPP <09da004ccd82e7a2c54e0ea6ab4eab24> 1990 (jettisoned) (active)
MobilePhone <6d3241e15be58311a76700272febc6d4> 635 (jettisoned)
accessoryd <6a25188f645a24b167cda5e0a86d486a> 121 (jettisoned)
当应用程序在没有仪器的情况下运行时,我没有遇到任何崩溃,并且用户认为该应用程序性能良好。几天来我一直专注于解决这个问题(几乎所有我的代码都被注释以找到问题)。
我的问题是 - 与仪器结合使用时应用程序崩溃是否会给最终用户带来问题?或者这只会在调试内存问题时给我带来问题?
注 1:当我将应用程序与仪器一起使用时,我根本没有与该应用程序进行交互。它加载 View Controller ,进行异步服务调用,该调用返回结果,然后将结果填充到两个 TableView 中。由于仍然需要对象,因此不需要释放太多内容。
注释 2:这是应用程序崩溃时分配工具中的实时对象列表片段(按大小降序排列)。正如你所看到的,MYAPP 并不是真正的主要罪犯(表面上)
Size(bytes) Responsible Library Responsible Caller
131072 UIKit -[UIView(Internal) _subclassImplementsDrawRect]
45056 CoreGraphics zone_malloc
16384 libCGFreetype.A.dylib ft_allocate
11264 Foundation NSPopAutoreleasePool
8192 libCGFreetype.A.dylib ft_allocate
8192 Foundation NSLogv
7680 libCGFreetype.A.dylib ft_allocate
7680 libCGFreetype.A.dylib ft_allocate
7680 CoreGraphics argb32_mark_constmask
5120 CoreGraphics CGDataProviderCreateWithCopyOfData
4608 libCGFreetype.A.dylib ft_allocate
4608 libCGFreetype.A.dylib ft_allocate
4608 libCGFreetype.A.dylib ft_allocate
4096 libSystem.B.dylib __stack_chk_fail
4096 QuartzCore CA::Transaction::create()
4096 Foundation NSPushAutoreleasePool
4096 MYAPP -[CJSONScanner scanNotQuoteCharactersIntoString:]
谢谢
最佳答案
我以前也遇到过类似的问题。原来我使用的是未初始化的内存。使用分配运行会更改导致崩溃的内存值。
关于iphone - 与分配工具一起使用时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973913/