2014-09-18 30 views
1

我在objc_release上發生了一個奇怪的崩潰。該計劃已與儀器分析,記錄所有分配。該程序試圖訪問的無效地址不記錄在任何地方。我認爲這是沒有NSZombie對象出現的原因。objc_release崩潰

我不使用autoreleasepool進行自己的分配。

任何想法如何追溯問題的根源?

Crashed Thread: 0 Dispatch queue: com.apple.main-thread 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000114208650 

VM Regions Near 0x114208650: 
    Stack     00000001140ba000-000000011413c000 [ 520K] rw-/rwx SM=COW thread 11 
--> 
    MALLOC_LARGE   00000001144ba000-0000000114d2f000 [ 8660K] rw-/rwx SM=PRV 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 
0 libobjc.A.dylib     0x00007fff8a3280e6 objc_release + 22 
1 libobjc.A.dylib     0x00007fff8a32765a (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 502 
2 liboainject.dylib    0x00000001083da2c8 __oa__objc_autoreleasePoolPop + 123 
3 com.apple.CoreFoundation  0x00007fff90beb9e2 _CFAutoreleasePoolPop + 50 
4 com.apple.Foundation   0x00007fff88c05e17 -[NSAutoreleasePool drain] + 147 
5 com.apple.AppKit    0x00007fff8e0dba68 -[NSApplication run] + 725 
6 com.apple.AppKit    0x00007fff8e0c67a3 NSApplicationMain + 940 
7 com.xxxx.xxxxxxx    0x0000000108102ea2 main + 34 (main.mm:5) 
8 com.xxxx.xxxxxxx    0x00000001080e9a84 start + 52 
+0

你使用手動內存分配還是ARC? – 2014-09-18 16:26:16

+0

我正在使用手動內存分配。 ARC關閉。 – 0xdword32 2014-09-18 16:49:59

+0

你是說你啓用殭屍,並沒有工作?你正在運行殭屍樂器嗎? – jlehr 2014-09-18 16:53:15

回答

0

問題:我在一個動態加載的庫中對NSView進行了子類化。

解決方案:在運行時(使用objc運行時)創建子類併爲其指定唯一的名稱。醜陋的代碼,但它的作品。