我有一个应用程序,当我运行它几分钟时,它总是崩溃。我检查了崩溃日志,它总是说 malloc: * mmap(size=1048576) failed (error code=12) * error: can't allocate region secure 我使用仪器工具检查内存泄漏,但没有找到任何内存泄漏。我想知道是否有一些仪器无法找到的内存泄漏,或者其他一些导致崩溃的原因。任何帮助将不胜感激!
编辑:
我使用时间分析器来检查性能。但我不知道关键点是什么,因为最重要的项目是:
运行时间 Self Symbol Name 6494.0ms 9.4% 6494.0 -[DLStarView initWithDefault:highlighted:position:allowFractions:] (我的应用有很多列表,每个项目都有一个自制的星形视图)
运行时间自身符号名称 5848.0ms 8.4% 5848.0 +[ASIHTTPRequest runRequests](我的应用程序总是从服务器获取数据)
运行时间自身符号名称 2169.0ms 3.1% 2169.0 -[BMKUserLocationInternal updateLocationInfo]
运行时间自身符号名称 1435.0ms 2.0% 1435.0 -[EGOCache imageForKey:]
运行时间自身符号名称 1252.0ms 1.8% 1252.0 -[KLRESTDetailViewController tableView:cellForRowAtIndexPath:]
有用吗?我如何检查我是否塞了一堆东西?
PS:这个crash只出现在真机上,我在模拟器里跑了20分钟左右,app还是运行流畅,我的设备是iPhone4S iOS 6.0.1
我设置了一个断点并收到了消息:
崩溃线程消息并不总是相同,但在控制台输出中,它总是说 malloc: * mmap(size=1048576) failed (error code=12) 错误:无法安全分配区域 * * 在 malloc_error_break 中设置断点以进行调试
我被这个错误迷惑了几天,有什么想法吗?谢谢!
我使用时间分析器来检查性能。但我不知道关键点是什么,因为最重要的项目是:
运行时间 Self Symbol Name 6494.0ms 9.4% 6494.0 -[DLStarView initWithDefault:highlighted:position:allowFractions:] (我的应用有很多列表,每个项目都有一个自制的星形视图)
运行时间自身符号名称 5848.0ms 8.4% 5848.0 +[ASIHTTPRequest runRequests](我的应用程序总是从服务器获取数据)
运行时间自身符号名称 2169.0ms 3.1% 2169.0 -[BMKUserLocationInternal updateLocationInfo]
运行时间自身符号名称 1435.0ms 2.0% 1435.0 -[EGOCache imageForKey:]
运行时间自身符号名称 1252.0ms 1.8% 1252.0 -[KLRESTDetailViewController tableView:cellForRowAtIndexPath:]
有用吗?我如何检查我是否塞了一堆东西?
PS:这个crash只出现在真机上,我在模拟器里跑了20分钟左右,app还是运行流畅,我的设备是iPhone4S iOS 6.0.1
我设置了一个断点并收到了消息:
libsystem_c.dylib`malloc_error_break:0x33c742e8:push {r7,lr}
0x33c742ea:mov r7,sp
0x33c742ec:nop
0x333c742ee
:
nop
0x33c742f0:pop nop 0x33c742f0:pop n
; r0]
0x3393ed8a:ldr r0,[r4,r0]
0x3393ed8c:blx 0x33aaf1c0;符号存根:-[NSUUID copyWithZone:]
0x3393ed90: movw r0, #
52700 0x3393ed94: movt r0, #1571
0x3393ed98: add r0, pc
0x3393ed9a: ldr r1, [r0]
0x23ac72:mov r0,r5
0x23ac74:str.w r8,[sp]
0x23ac78:blx 0x2c7d04;符号存根:objc_msgSend
0x23ac7c: b 0x23aca4;-[BMKUserLocationInternal updateLocationInfo]
+ 912 在 BMKUserLocationInternal.mm:131
0x23ac7e: bl 0x1cbcd8 ;bmengine::GetGlobalMan() 在
IphoneBaiduMaps.mm:61
0x33941b7e:mov r0,r11
0x33941b80:mov r1,r8
0x33941b82:mov r2,r10
0x33941b84:blx 0x33aace80;符号存根:CFDictionarySetValue$shim
0x33941b88: movw r0, #36884
0x33941b8c: movt r0, #1571
0x33941b90: add r0, pc
0x33941b92: ldr r4, [r0]
0x33941b94: mov r0, r
0x23acd6: movs r3, #1
0x23acd8: str r3, [sp]
0x23acda: movs r3, #0
0x23acdc: blx 0x2c7d04; 符号存根:objc_msgSend
0x23ace0:添加 sp,#4
0x23ace2:pop {r7,pc}
0x35bee92e:ldr r1,[sp,#224]
0x35bee930:ldr r2,[sp,#136]
0x35bee932:ldr r3,[sp,#232]
0x35bee934:blx 0x35c268e4;符号存根:
CLLocationDictionaryUtilitiesGetTransitionInterval
0x35bee938: movw r0, #1732
0x35bee93c: movt r0, #1078
0x35bee940: add r0, pc
0x35bee942: ldr r1, [r0]
崩溃线程消息并不总是相同,但在控制台输出中,它总是说 malloc: * mmap(size=1048576) failed (error code=12) 错误:无法安全分配区域 * * 在 malloc_error_break 中设置断点以进行调试
我被这个错误迷惑了几天,有什么想法吗?谢谢!