4

this is my first question on StackOverflow, hopefully it is a pertinent one! To try to put you in context, I have an odd crash in my application when I try to open the camera with the PresentViewController method. I tried looking into the crash reports, but I do not have any call details, only hexadecimal as following:

 Thread 0 Crashed: 
 0   libsystem_kernel.dylib         0x38a97350 0x38a86000 + 70480
 1   libsystem_c.dylib              0x35d3a11e 0x35d0b000 + 192798
 2   libsystem_c.dylib              0x35d7696e 0x35d0b000 + 440686
 3   (project_name)                 0x00882968 0x1000     + 8919400
 4   (project_name)                 0x0083db7c 0x1000     + 8637308
 5   libsystem_c.dylib              0x35d43e90 0x35d0b000 + 233104
 6   UIKit                          0x39d40b00 0x39d3b000 + 23296
 7   QuartzCore                     0x34c52ff2 0x34c4c000 + 28658
 8   QuartzCore                     0x34c52fa2 0x34c4c000 + 28578
 9   QuartzCore                     0x34c52e8e 0x34c4c000 + 28302
 10  QuartzCore                     0x34c4e9ba 0x34c4c000 + 10682
 11  QuartzCore                     0x34c4e876 0x34c4c000 + 10358
 12  QuartzCore                     0x34c4e806 0x34c4c000 + 10246
 13  UIKit                          0x39d3fae8 0x39d3b000 + 19176
 14  UIKit                          0x39d4271e 0x39d3b000 + 30494
 15  UIKit                          0x39d84a6c 0x39d3b000 + 301676
 16  PhotoLibrary                   0x381c39ca 0x38157000 + 444874
 17  UIKit                          0x39d417fe 0x39d3b000 + 26622
 18  QuartzCore                     0x34c4fd5e 0x34c4c000 + 15710
 19  QuartzCore                     0x34c4f8fc 0x34c4c000 + 14588

Anyways, since my crash report is inconclusive (in my opinion), I googled how to usually handle memory issues for iOS and NSZombieEnabled and Enabling Guard Malloc have ben mentioned. NSZombieEnabled is enabled by default in Monotouch, but I didn't find anywhere how to Enable Guard Malloc. Is it even possible for Monotouch? Thank you!

4

1 回答 1

3

Without proper stack traces any other debugging tool will be pretty much useless.

You need to symbolicate the crash report - or figure out why yours doesn't symbolicate properly. Usually Xcode does it automatically (it takes a few seconds after you've opened the crash report though), but it requires Spotlight to find the debugging information, so if Spotlight isn't indexing your project directory this is one of the consequences. Another thing that trips up symbolication sometimes is if the solution/project/executable name aren't identical.

You should also look in the device log, many times the exact reason for the crash is printed out there (even with instructions on how to fix it). Here is a guide on how to find the device logs if haven't seen them before.

于 2012-11-27T23:20:34.813 回答