Я пишу приложение для iPhone, используя Monotouch, и недавно приложение начало падать, заявляя
Mprotect failed at 0x863a000 (length 8192) with errno 12
с последующей довольно длинной трассировкой стека и Springboard, сообщающим, что «приложение аварийно завершилось с сигналом 6».
Я прочитал этот вопрос , в котором говорится, что приложение исчерпало всю доступную память на iPhone.
Мы применили несколько общих шаблонов Dispose к приложению и, как правило, избавлялись от тяжелых предметов, как только могли. Это означало, что приложение теперь работает с меньшим объемом памяти. Однако мы все еще получаем сообщение об ошибке MProtect.
Также любопытно отметить, что при запуске приложения под инструментами инструменты сообщают, что устройству доступно достаточно свободной памяти (~ 40 МБ).
Мне было интересно, сможет ли кто-нибудь объяснить MProtect и эту ошибку, так как я не думаю, что понял ее правильно.