iPhone 应用程序因 Mprotect 失败错误而崩溃 (MonoTouch) [英] iPhone application crashes with Mprotect failed error (MonoTouch)

查看:24
本文介绍了iPhone 应用程序因 Mprotect 失败错误而崩溃 (MonoTouch)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 MonoTouch 开发的 iPhone 应用程序出现问题.
我正在开发一个联系 WCF 服务的应用程序,当 WCF 服务回复时,我用返回的数据更新 UITableView,完成后它发送一个新的 WCF 异步调用,当它回复时它再次更新表等等.

I have a problem with my iPhone application developed with MonoTouch.
I am developing an application that contacts a WCF Service, and when the WCF Service answer back, I update an UITableView with the returned data, when this is done it sends a new WCF async call, and when it answer back it updates the table again and so on.

问题在于,当它在可变的时间内完成此操作时,它会崩溃并显示 Mprotect failed 错误 12.这仅在应用程序直接在手机上运行而不是在模拟器中运行时发生.

The problem is that when it has done this in a variable amount of time, it crashes with an Mprotect failed error 12. This only happens when the application is running directly on the phone and not in the simulator.

我试图在表更新发生的地方发表评论,并在向 WCF 服务发送下一个异步请求之前创建一个 Thread.Sleep(1000),但仍然是同样的错误,但可以运行更长时间而不会失败.

I have tried to out comment where the update of the table happens, and making a Thread.Sleep(1000) before sending the next Async request to the WCF Service, but still the same error, but can run longer with out failing.

我通过 SlSvcUtil.exe/noConfig 生成的代理"文件联系 WCF 服务 http://mydomain/myservice.svc

I contact the WCF Service through the "proxy" files, generated by SlSvcUtil.exe /noConfig http://mydomain/myservice.svc

我的问题是可以通过某种方式或解决方法来避免此错误吗?是我的错,还是bug?这实际上是因为我将在我的最终学校项目中使用该应用程序,所以如果我能修复它就太好了.

My question is that can this error be avoid in a way or maybe with a workaround? Is it my fault, or is it a bug? It is actually because I shall use the application in my final school project, so it could be nice if I could fix it.

我发布了控制台输出和崩溃报告的一部分,但如果您需要更多信息,请告诉我,我会发布.我不是使用 Mono 或 MonoTouch 环境的专业人士,这是我第一次使用,所以详细的回复会很好.

I post the console output, and a part from the crash report, but if you need more info please tell me, and I will post it. I am not a pro to use Mono or the MonoTouch environment it is my first time, so detailed responses would be nice.

控制台输出:

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Mprotect failed at 0xa09a000 (length 1052672) with errno 12

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Stacktrace:

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>:   at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <0xffffffff>

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>:   at MonoTouch.UIKit.UIApplication.Main (string[],string,string) <0x000e0>

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>:   at MonoTouch.UIKit.UIApplication.Main (string[]) <0x00023>

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>:   at iPhoneStdView.Application.Main (string[]) <0x0001b>

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>:   at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0x000c3>

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Native stacktrace:

Mon Dec 27 20:37:18 tests-iPhone ReportCrash[635] <Notice>: Formulating crash report for process iPhoneNoNavigation[625]

Mon Dec 27 20:37:18 tests-iPhone com.apple.launchd[1] (UIKitApplication:dk.test.iphone[0x1c3c][625]) <Warning>: (UIKitApplication:dk.test.iphone[0x1c3c]) Job appears to have crashed: Abort trap

Mon Dec 27 20:37:18 tests-iPhone SpringBoard[27] <Warning>: Application 'iPhoneStdView' exited abnormally with signal 6: Abort trap

崩溃报告:

Thread 0 Crashed:
0   dyld                            0x2fe08110 0x2fe00000 + 33040
1   libSystem.B.dylib               0x3020259e 0x301ff000 + 13726
2   libSystem.B.dylib               0x302531da 0x301ff000 + 344538
3   iPhoneNoNavigation              0x0051975c 0x1000 + 5343068
4   iPhoneNoNavigation              0x00538080 0x1000 + 5468288
5   libSystem.B.dylib               0x302765cc 0x301ff000 + 488908
6   libSystem.B.dylib               0x30201d64 0x301ff000 + 11620
7   CoreFoundation                  0x3081fc38 0x307f8000 + 162872
8   CoreFoundation                  0x3081f4c2 0x307f8000 + 160962
9   CoreFoundation                  0x3081f270 0x307f8000 + 160368
10  CoreFoundation                  0x3081f178 0x307f8000 + 160120
11  GraphicsServices                0x31e445ec 0x31e40000 + 17900
12  GraphicsServices                0x31e44698 0x31e40000 + 18072
13  UIKit                           0x31e5111c 0x31e4d000 + 16668
14  UIKit                           0x31e4f128 0x31e4d000 + 8488
15  iPhoneNoNavigation              0x0006e754 0x1000 + 448340

Thread 0 crashed with ARM Thread State:
    r0: 0x35f4d17c    r1: 0x302765a9      r2: 0x35989b04      r3: 0x0000000e
    r4: 0x2fe29e78    r5: 0x07d17490      r6: 0x302765d3      r7: 0x2fffe24c
    r8: 0x00000000    r9: 0x3598762c     r10: 0x0000000d     r11: 0x07d17470
    ip: 0x3598762c    sp: 0x2fffe240      lr: 0x3e08dc60      pc: 0x2fe08110
  cpsr: 0x20000030

推荐答案

错误 12 是 ENOMEM,您已经耗尽了 iphone 上的所有可用内存.

Error 12 is ENOMEM, you've exhausted all the memory available on the iphone.

这篇关于iPhone 应用程序因 Mprotect 失败错误而崩溃 (MonoTouch)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆