这是我在 StackOverflow 上的第一个问题,希望它是一个中肯的问题!为了让您了解上下文,当我尝试使用 PresentViewController 方法打开相机时,我的应用程序发生了奇怪的崩溃。我试着查看崩溃报告,但我没有任何调用详细信息,只有十六进制如下:
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
无论如何,由于我的崩溃报告没有定论(在我看来),我在谷歌上搜索了通常如何处理 iOS 和 NSZombieEnabled 以及启用 Guard Malloc 的内存问题。 NSZombieEnabled 在 Monotouch 中默认启用,但我没有在任何地方找到如何启用 Guard Malloc。 Monotouch甚至有可能吗?谢谢!
最佳答案
如果没有适当的堆栈跟踪,任何其他调试工具都将毫无用处。
您需要符号化崩溃报告 - 或者弄清楚为什么您的崩溃报告没有正确符号化。通常 Xcode 会自动执行此操作(虽然在您打开崩溃报告后需要几秒钟),但它需要 Spotlight 找到调试信息,因此如果 Spotlight 没有为您的项目目录编制索引,这就是后果之一。有时会导致符号化失败的另一件事是解决方案/项目/可执行文件名称是否不相同。
您还应该查看设备日志,很多时候崩溃的确切原因都打印在那里(甚至还有关于如何修复它的说明)。 Here是关于如何查找设备日志(如果之前没有看到它们)的指南。
关于ios - Monotouch-启用Guard Malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588836/