Приложение iPhone падает с ошибкой Mprotect (MonoTouch) - PullRequest
2 голосов
/ 28 декабря 2010

У меня проблема с приложением iPhone, разработанным с использованием MonoTouch.
Я занимаюсь разработкой приложения, которое связывается со службой WCF, и когда служба WCF отвечает обратно, я обновляю UITableView с возвращенными данными, когда это делается.он отправляет новый асинхронный вызов WCF, а когда он отвечает, он снова обновляет таблицу и так далее.

Проблема заключается в том, что, когда он делает это за переменное время, происходит сбой с ошибкой Mprotect 12. Это происходит только тогда, когда приложение работает непосредственно на телефоне, а не в симуляторе.

Я попытался прокомментировать, где происходит обновление таблицы, и сделать Thread.Sleep (1000) перед отправкой следующего асинхронного запроса в службу WCF, но все равно та же ошибка, но может работать дольшебез провалов.

Я связываюсь со службой WCF через «прокси» -файлы, созданные с помощью SlSvcUtil.exe / noConfig http://mydomain/myservice.svc

Мой вопрос заключается в том, можно ли избежать этой ошибки, илиможет быть, с обходным путем?Это моя вина, или это ошибка?Это на самом деле потому, что я буду использовать приложение в своем последнем школьном проекте, поэтому было бы неплохо, если бы я мог это исправить.

Я публикую вывод консоли и часть отчета о сбое, но если вам нужна дополнительная информация, пожалуйста, сообщите мне, и я опубликую ее.Я не профессионал в использовании Mono или среды MonoTouch, это мой первый раз, поэтому подробные ответы были бы хороши.

Вывод на консоль:

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

1 Ответ

7 голосов
/ 28 декабря 2010

Ошибка 12 - ENOMEM, вы исчерпали всю доступную память на iphone.

...