gpt4 book ai didi

objective-c - 我的应用程序崩溃并关闭,关于原因的信息很少

转载 作者:太空狗 更新时间:2023-10-30 03:34:12 25 4
gpt4 key购买 nike

我遇到了崩溃,非常感谢有关如何查找和解决问题的建议。游戏只是关闭。当应用程序附加并在调试器中运行时,没有调试输出说明为什么像“正常”崩溃一样。我知道它发生在 LoadView 之后,因为 LoadView 末尾的 NSLog 是最后的输出,每次都在相同屏幕上。下面是 Organizer 的有限崩溃报告(我认为是“未知”进程,因为它在调试器中运行?)这只是在 ios6 上才开始发生。根据仪器,显然没有内存泄漏,但我不确定我是否完全相信它。当您玩游戏一段时间并在屏幕上来回移动时,往往会发生崩溃,感觉就像是在泄漏。然而,当返回到同一屏幕时它总是出现的事实表明它是该 View Controller 的问题。我不知道 rpages 到底是什么,我不知道 90974 是否太大。

Incident Identifier: 7D34217C-9F8E-49B0-B399-1F5573355F31
CrashReporter Key: 29ce6ea76874d5a03d826014a1f50e1a2160db41
Hardware Model: iPhone3,1
OS Version: iPhone OS 6.0 (10A403)
Kernel Version: Darwin Kernel Version 13.0.0: Sun Aug 19 00:27:34 PDT 2012; root:xnu-2107.2.33~4/RELEASE_ARM_S5L8930X
Date: 2012-10-30 22:48:15 -0700
Time since snapshot: 206 ms

Free pages: 958
Active pages: 2673
Inactive pages: 2118
Throttled pages: 101092
Purgeable pages: 0
Wired pages: 22186
Largest process: MyCrashingApp

Processes
Name <UUID> rpages recent_max [reason] (state)

MobileMail <bff817c61ce33c85a43ea9a6c98c29f5> 1165 1165 [vm] (resume) (continuous)
MobilePhone <3fca241f2a193d0fb8264218d296ea41> 898 898 [vm] (resume) (continuous)
tccd <eb5ddcf533663f8d987d67cae6a4c4ea> 119 119 [vm] (daemon)
MyCrashingApp <f6c54a2392523abe8745d853870bf985> 90974 90974 [vm] (audio) (frontmost) (resume)
ptpd <04a56fce67053c57a7979aeea8e5a7ea> 665 665 (daemon)
locationd <892cd1c9ffa43c99a82dba197be5f09e> 1237 1237 (daemon)
dataaccessd <2a3f6a518f3f3646bf35eddd36f25005> 614 614 (daemon)
mediaserverd <80657170daca32c9b8f3a6b1faac43a2> 1316 1316 (daemon)
syslogd <cbef142fa0a839f0885afb693fb169c3> 139 139 (daemon)
wifid <9472b090746237998cdbb9b34f090d0c> 284 284 (daemon)
iaptransportd <f784f30dc09d32078d87b450e8113ef6> 192 192 (daemon)
SpringBoard <27372aae101f3bbc87804edc10314af3> 3477 3477
backboardd <5037235f295b33eda98eb5c72c098858> 9957 9957 (daemon)
aggregated <8c3c991dc4153bc38aee1e841864d088> 75 75 (daemon)
BTServer <c92fbd7488e63be99ec9dbd05824f5e5> 198 198 (daemon)
configd <4245d73a9e96360399452cf6b8671844> 897 897 (daemon)
fairplayd.N90 <3ac48d9cfb143757bccce4fe6c154533> 135 135 (daemon)
fseventsd <996cc4ca03793184aea8d781b55bce08> 315 315 (daemon)
imagent <1e68080947be352590ce96b7a1d07b2f> 528 528 (daemon)
mDNSResponder <3e557693f3073697a58da6d27a827d97> 237 237 (daemon)
lockdownd <ba1358c7a8003f1b91af7d5f58dd5bbe> 207 207 (daemon)
powerd <2d2ffed5e69638aeba1b92ef124ed861> 123 123 (daemon)
UserEventAgent <6edfd8d8dba23187b05772dcdfc94f90> 427 427 (daemon)
debugserver <185719f06f1631d4922c652bdd4c8529> 0 0 (daemon)
gputoolsd <889065a15ba8372ca533e023c10bd776> 0 0 (daemon)
springboardservi <ff6f64b3a21a39c9a1793321eefa5304> 0 0 (daemon)
syslog_relay <45e9844605d737a08368b5215bb54426> 0 0 (daemon)
syslog_relay <45e9844605d737a08368b5215bb54426> 0 0 (daemon)
DTMobileIS <23303ca402aa3705870b01a9047854ea> 0 0 (daemon)
afcd <b0aff2e7952e34a9882fec81a8dcdbb2> 120 120 (daemon)
notification_pro <845b7beebc8538ca9ceef731031983b7 118 118 (daemon)
filecoordination <fbab576f37a63b56a1039153fc1aa7d8> 115 115 (daemon)
distnoted <a89af76ec8633ac2bbe99bc2b7964bb0> 101 101 (daemon)
apsd <94d8051dd5f5362f82d775bc279ae608> 280 280 (daemon)
networkd <0032f46009f53a6c80973fe153d1a588> 147 147 (daemon)
CommCenterClassi <c82f228b14a830cdb88e3cc1068330b3> 616 616 (daemon)
notifyd <51c0e03da8a93ac8a595442fcaac531f> 167 167 (daemon)
ReportCrash <8c32f231b2ed360bb151b2563bcaa363> 135 135 (daemon)

结束

最佳答案

您的应用程序崩溃是因为 Jetsam(又名 memorystatus)(iOS 的低内存条件处理程序)终止了它(这类似于 Linux 的 OOM 和 Android 的 LowMemory Killer)。您看到的是内存快照。请允许我解释一下:

Free pages:        958  - how much free physical memory (in multiples of 4K)Active pages:      2673 - how many pages in physical memory have recently been usedInactive pages:    2118 - how many pages in physical memory have NOT recently been usedThrottled pages:   101092 - how many pages are subject to throttling (long story, irrelevant here)Purgeable pages:   0      - how many pages can be kicked out, on low memory condition  Wired pages:       22186  - how many pages are resident locked, mostly for kernel purposes, or shared libraries

您的应用不幸且可疑地拥有最常驻内存(与其他应用相比数量级)。因此,当出现低内存情况时 - 一些应用程序想要 malloc() 一个大块,但没有足够的可用页面剩余 - Jetsam 只是选择顶部内存和 - boom。 杀死 -9。因此,没有调试转储等。iOS 没有交换区,因此无法在交换区转储进程以清理内存。唯一的出路就是出去。死亡。

你能做些什么:

在 Jetsam 杀死您之前,通常会通过事件发出低内存通知,Obj-C 运行时将其转换为 -didReceiveMemoryWarning。所以处理它。根据您的描述,您可能还想释放 UIView。那些消耗大量内存。

关于objective-c - 我的应用程序崩溃并关闭,关于原因的信息很少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com