【问题标题】:App crashes when used with Allocations Instrument与分配工具一起使用时应用程序崩溃
【发布时间】:2011-04-27 19:09:24
【问题描述】:

我发现我的应用在与分配工具一起使用时会崩溃。查看设备日志时,我可以判断这是“内存不足”崩溃。除了我的应用程序使用的其他应用程序之外,我的应用程序进程都被抛弃了。以下是设备日志的外观:

  MyAPP <09da004ccd82e7a2c54e0ea6ab4eab24>    1990 (jettisoned) (active)
 MobilePhone <6d3241e15be58311a76700272febc6d4>     635 (jettisoned)
  accessoryd <6a25188f645a24b167cda5e0a86d486a>     121 (jettisoned)

当应用程序在没有仪器的情况下运行并且用户认为应用程序性能良好时,我没有遇到任何崩溃。几天来我一直专注于解决这个问题(几乎我所有的代码都被注释了以找到问题)。

我的问题是 - 与仪器一起使用时应用程序崩溃会给最终用户带来问题吗?或者这只会在调试内存问题时引起我的问​​题?

注意 1:在将应用程序与仪器一起使用时,我根本没有与应用程序进行交互。它加载一个视图控制器,进行一个异步服务调用,返回结果,然后填充到两个表视图中。由于仍然需要对象,因此释放的空间并不多。

注意 2:这是应用程序崩溃时来自分配工具的 LIVE 对象列表的 sn-p(按大小按降序排序)。如您所见,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:]

谢谢

【问题讨论】:

  • 如果没有看到您的代码,就不可能 100% 确定地得出任何结论。
  • 您希望在代码中具体看到什么?

标签: iphone memory-management instruments


【解决方案1】:

我以前也遇到过类似的问题。原来我使用的是未初始化的内存。 Running with Allocations 改变了导致崩溃的内存值。

【讨论】:

  • 你是怎么发现的,有没有你用过的工具?当 Instruments 崩溃时,它并不能提供太多有用的信息,所以我有点卡住了。
猜你喜欢
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2018-07-30
  • 2020-06-08
  • 1970-01-01
相关资源
最近更新 更多