damian-kolakowski/iOS-Hierarchy-Viewer

PrettyExample infinitely recurses on loading

paulb777 opened this issue · 1 comments

The observeValueForKeyPath in PrettyTableViewCell.m infinitely recurses and crashes 72704 stack frames deep:

(lldb) bt 40

  • thread #1: tid = 0x199277, 0x0381e1f9 libsystem_malloc.dylibcalloc + 9, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0xbf715ffc) frame #0: 0x0381e1f9 libsystem_malloc.dylibcalloc + 9
    frame #1: 0x0202bcc1 libobjc.A.dylibclass_createInstance + 68 frame #2: 0x019a3fa7 FoundationNSAllocateObject + 33
    frame #3: 0x019c6387 Foundation_NSNewValue + 1088 frame #4: 0x019c5f2e Foundation+[NSValue valueWithBytes:objCType:] + 39
    frame #5: 0x019e1633 Foundation+[NSValue valueWithRect:] + 53 frame #6: 0x01a61f15 Foundation_NSGetRectValueWithMethod + 110
    frame #7: 0x019d0f28 Foundation_NSGetUsingKeyValueGetter + 104 frame #8: 0x019d0eb8 Foundation-[NSObject(NSKeyValueCoding) valueForKey:] + 260
    frame #9: 0x019ea60d Foundation-[NSObject(NSKeyValueCoding) valueForKeyPath:] + 383 frame #10: 0x019aa3f5 FoundationNSKeyValueWillChangeBySetting + 49
    frame #11: 0x019a8103 FoundationNSKeyValueWillChange + 408 frame #12: 0x019af3a5 Foundation-[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 246
    frame #13: 0x01a59163 Foundation`_NSSetRectValueAndNotify + 117
    • frame #14: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d0bf0, context=0x00000000) + 808 at PrettyTableViewCell.m:477 frame #15: 0x019ab673 FoundationNSKeyValueNotifyObserver + 359
      frame #16: 0x019aa730 FoundationNSKeyValueDidChange + 462 frame #17: 0x019af485 Foundation-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120
      frame #18: 0x01a591ae Foundation_NSSetRectValueAndNotify + 192 frame #19: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d0b80, context=0x00000000) + 808 at PrettyTableViewCell.m:477
      frame #20: 0x019ab673 FoundationNSKeyValueNotifyObserver + 359 frame #21: 0x019aa730 FoundationNSKeyValueDidChange + 462
      frame #22: 0x019af485 Foundation-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120 frame #23: 0x01a591ae Foundation_NSSetRectValueAndNotify + 192
      frame #24: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d0b10, context=0x00000000) + 808 at PrettyTableViewCell.m:477 frame #25: 0x019ab673 FoundationNSKeyValueNotifyObserver + 359
      frame #26: 0x019aa730 FoundationNSKeyValueDidChange + 462 frame #27: 0x019af485 Foundation-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120
      frame #28: 0x01a591ae Foundation_NSSetRectValueAndNotify + 192 frame #29: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d0aa0, context=0x00000000) + 808 at PrettyTableViewCell.m:477
      frame #30: 0x019ab673 FoundationNSKeyValueNotifyObserver + 359 frame #31: 0x019aa730 FoundationNSKeyValueDidChange + 462
      frame #32: 0x019af485 Foundation-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120 frame #33: 0x01a591ae Foundation_NSSetRectValueAndNotify + 192
      frame #34: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d0a30, context=0x00000000) + 808 at PrettyTableViewCell.m:477 frame #35: 0x019ab673 FoundationNSKeyValueNotifyObserver + 359
      frame #36: 0x019aa730 FoundationNSKeyValueDidChange + 462 frame #37: 0x019af485 Foundation-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120
      frame #38: 0x01a591ae Foundation_NSSetRectValueAndNotify + 192 frame #39: 0x000f4cc8 PrettyExample-[PrettyTableViewCell observeValueForKeyPath:ofObject:change:context:](self=0x78661870, _cmd=0x01bda3bc, keyPath=0x00146538, object=0x78662070, change=0x789d09c0, context=0x00000000) + 808 at PrettyTableViewCell.m:477

(lldb) f 72704
frame #72704: 0x000ebe2a PrettyExample`main(argc=1, argv=0xbff1459c) + 170 at main.m:16
13 int main(int argc, char *argv[])
14 {
15 @autoreleasepool {
-> 16 return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 }
18 }
(lldb)

Removed PrettyExample.