2011-11-18 134 views
0


我试图调试从互联网上下载大量资源的应用程序。问题是,有时下载应用程序崩溃(不在同一地点或相同的资源)。
记忆似乎没问题,没有记忆警告,没有泄漏,没有僵尸,肮脏的大小停留在10MBSB + o-2MB常驻50MB左右。
其他奇怪的事情是错误仍然不会发生在设备上的模拟器bu上。
崩溃日志在Apple lib上使用EXC_BAD_ACCES(某些东西不存在)识别另一个线程(num3)中的崩溃。我无法理解它是一个应用程序错误还是一个API错误。
从互联网下载资源时iOS应用程序崩溃

事件标识符:9138742F-0160-4220-8E62-000001650CF4 CrashReporter始终键:6f0ba5a6bbc182f6798918f01ccd6bac4f8e4713硬件 型号:iPad1,1工艺:XXX-升级[949]路径:
的/ var /移动/应用/ C98657F3-B7E6-4542-B0DA-70D8239E5210/XXX-Upgraded.app/XXX -Upgraded 标识符:XXX-Upgraded版本:??? (???)编码类型:
ARM(母语)父进程:的launchd 1

日期/时间:2011-11-18 11:13:25.994 0100 OS版本:iPhone OS 5.0.1(9A405 )报告版本:104

异常类型:EXC_BAD_ACCESS(SIGSEGV)异常代码: KERN_INVALID_ADDRESS在0xf006191c崩溃螺纹:3

线程0名:调度队列:com.apple.main线程线程0:0
libsystem_kernel.dylib 0x360ad010 0x360ac000 + 4112 1
libsystem_kernel.dylib 0x360ad206 0x360ac000 + 4614 2
的CoreFoundation 0x33ac441c 0x33a37000 + 578588 3
的CoreFoundation 0x33ac311a 0x33a37000 + 573722 4
的CoreFoundation 0x33a464d6 0x33a37000 + 62678 5
的CoreFoundation 0x33a4639e 0x33a37000 + 62366 6
GraphicsServices 0x35686fc6 0x35683000 + 16326 7的UIKit 0x34b8b73c 0x34b5a000 + 202556 8 XXX-升级
0x000028a8主(的main.m:15)9 XXX-升级
0x00002860开始+ 32

线程1名:调度队列:com.apple.libdispatch管理器线程 1:0 libsystem_kernel.dylib 0x360ad3b4 0x360ac000 + 5044 1
libdispatch.dylib 0x36dd3e78 0x36dc7000 + 52856 2
libdispatch.dylib 0x36dd3b96 0x36dc7000 + 52118

线程2名:WebThread线程2:0 libsystem_kernel.dylib
0x360ad010 0x360ac000 + 4112 1 libsystem_kernel.dylib
0x360ad206 0x360ac000 + 4614 2的CoreFoundation
0x33ac441c 0x33a37000 + 578588 3的CoreFoundation
0x33ac3154 0x33a37000 + 573780 4的CoreFoundation
0x33a464d6 0x33a37000 + 62678 5的CoreFoundation
0x33a4639e 0x33a37000 + 62366 6的WebCore
0x33f02128 0x33e5a000 + 688424 7 libsystem_c。dylib
0x3492bc16 0x3491c000 + 64534 8 libsystem_c.dylib
0x3492bad0 0x3491c000 + 64208

线程3名:com.apple.NSURLConnectionLoader线程3毁损:0
libobjc.A.dylib 0x35206fbc 0x35203000 + 16316 1
的CoreFoundation 0x33a73d16 0x33a37000 + 249110 2
的CoreFoundation 0x33a395bc 0x33a37000 + 9660 3
CFNetwork的0x32e56fd8 0x32dc7000 + 589784 4
CFNetwork的0x32e57cee 0x32dc7000 + 593134 5
CFNetwork的0x32e56940 0x32dc7000 + 588096 6
的CoreFoundation 0x33a8555c 0x33a37000 + 320860 7
的CoreFoundation 0x33a857a4 0x33a37000 + 321444 8
的CoreFoundation 0x33ac4afc 0x33a37000 + 580348 9
的CoreFoundation 0x33ac42c8 0x33a37000 + 578248 10 的CoreFoundation 0x33ac306e 0x33a37000 + 573550 11 的CoreFoundation 0x33a464d6 0x33a37000 + 62678 12 的CoreFoundation 0x33a4639e 0x33a37000 + 62366 13 基金会0x3152abc2 0x3151a000 + 68546 14 基金会0x3152aa8a 0x3151a000 + 68234 15 基金会0x315be59a 0x3151a 000 + 673178 16 libsystem_c.dylib 0x3492bc16 0x3491c000 + 64534 17 libsystem_c.dylib 0x3492bad0 0x3491c000 + 64208

线程4名:com.apple.CFSocket.private线程4:0
libsystem_kernel.dylib 0x360bd570 0x360ac000 + 71024 1
的CoreFoundation 0x33ac866a 0x33a37000 + 595562 2
libsystem_c.dylib 0x3492bc16 0x3491c000 + 64534 3
libsystem_c.dylib 0x3492bad0 0x3491c000 + 64208

螺纹5:0 libsystem_kernel.dylib 0x360bdcd4 0x360ac0 00 + 72916 1个libsystem_c.dylib 0x3492630a 0x3491c000 + 41738 2 libsystem_c.dylib 0x3492609c 0x3491c000 + 41116

螺纹6:0 libsystem_kernel.dylib 0x360bdcd4 0x360ac000 + 72916 1 libsystem_c.dylib 0x3492630a 0x3491c000 + 41738 2 libsystem_c.dylib 0x3492609c 0x3491c000 + 41116

螺纹7:0 libsystem_kernel.dylib 0x360bdcd4 0x360ac000 + 72916 1 libsystem_c.dylib 0x3492630a 0x3491c000 + 41738 2 libsystem_c.dylib 0x3492609c 0x3491c000 + 41116

线程3坠毁与ARM线程状态: R0:0x006eaf90 R1:0x328c119e R2:0xf0061914 R3:0x3eeb09a8 R4:0xf0061914 R5:0x006eaf94 R6:0x020014c0 R7:0x0343b2b0 R8:0x3eecc690 R9:0x0ca30467 R10:0x00000014 R11:0x00000080 IP :0x3eea6814 SP:0x0343b2a0 LR:0x33a73d1d PC:0x35206fbc CPSR:0x20000030

[更新]
最后我电缆捕获错误。在连接结束时,它似乎是一个过度发布的数据块:didReceiveData :.实际上,为了简化调试,我只剩下一行代码,它使用输出流来附加数据。我无法理解我的过度释放。
仪表显示非常奇怪的东西:
- 第一僵尸似乎有些苹果的API调用
- 第二里面被创建,如果你看一看堆栈跟踪的图像,你可以看到有那并不是一个CFRetain不增加对象的参考计数,从而使其他操作不平衡
SS from instruments

有人可以帮我吗?
谢谢,
安德烈

+0

EXC_BAD_ACCESS - >你试过设置变量NSZombieEnabled为YES? – 0x8badf00d

+0

嗨,是的,那是我做的第一件事,但是因为这个错误是随机发生的,所以我从来没有能够捕捉到一个....从现在开始,它似乎是在过度放出从asyn进程返回的数据块,但它在里面苹果图书馆http://imageshack.us/photo/my-images/12/schermata112455884alle1.png/ THX – Andrea

回答

0

OK,
很多测试的(DST请求从未被苹果,不再成立了在接管),后头痛,癔病等,这是谈到了将作为一种假阳性。如果我测试使用泄漏,分配,僵尸,通常的控制台调试器发生。如果我只是在设备上运行应用程序(不连接它),一切似乎运行良好。

DTS帮我找到了错误,这个问题可能涉及两个错误,一个位于文书和一个CF. 最重要的是,这些错误仅在使用分配日志记录时影响应用程序,所以应用程序可以在我的测试会话期间发现时安全运行。

相关问题