Re: Crashing in NSTabView
Re: Crashing in NSTabView
- Subject: Re: Crashing in NSTabView
- From: Casey McDermott <email@hidden>
- Date: Wed, 22 May 2019 18:38:48 +0000 (UTC)
With current ARC, it's not allowed to override retain, release, autorelease or
retaincount.
Too bad, because breakpoints there can really help when debugging lifetime
issues.
Worst case, I guess we could go back to an earlier Xcode that allows them.
But that won't be fun.
Casey McDermott
Turtle Creek Software
On Wednesday, May 22, 2019, 2:08:44 PM EDT, Markus Spoettl
<email@hidden> wrote:
In the past, if the crash like that was reliably and not to complicated to
recreate and I
had no other choice, then overriding -autorelease and putting a breakpoint into
that
worked on some occasions. Be prepared to get a lot of hits though.
The object likely gets over-released by an auto-release sometime before the
actual release
causes the crash.
Best Regards
Markus
On 5/22/19 7:19 PM, Casey McDermott wrote:
> Yes, we added a NSArray in the tab view controller with a strong ref to each
>child view controller. That slows down the crash by one cycle,
> but doesn't provide any additional clues.
>
> Is there a way for NSZombie to show when the object is released? AFAICT it
> only kicks in on dealloc. We can see that happen already
> with a breakpoint.
>
> The Allocations feature in Instruments looks promising. Is there a way to
> limit the display to just one class? Otherwise it is WTMI.
>
> Sorry for asking stupid questions on these tools, but Apple's docs are not
> very good. Stack Overflow is often for old Xcode versions
> where everything is different. We are mostly C++ folks, where this kind of
> problem is easily solved with a breakpoint in the destructor.
>
> Thanks,
>
> Casey McDermott
> Turtle Creek Software
> On Wednesday, May 22, 2019, 11:43:30 AM EDT, Keary Suska
><email@hidden> wrote:
>
> When you say "separate, strong reference to each tab view controller” do you
>mean each child view controller that controls a single tab view item, or the
>tab view controller as a whole? It is keeping string references to the
>individual child view controllers that should solve your situation.
>
> You may also want to check out Instrument’s zombies, which might better
> pinpoint where the issue is ocurring.
>
> HTH,
>
> Keary Suska
> Esoteritech, Inc.
> "Demystifying technology for your home or business"
>
>> On May 22, 2019, at 8:26 AM, Casey McDermott <email@hidden> wrote:
>>
>> Our Mac app adds tabs to a NSTabView programmatically. After switching tabs
>> a few times, one of the NSTabViewItems would release
>> prematurely, causing a crash. So we switched it to using a
>> NSTabViewController. Tab switching still crashes, but now it releases a
>> NSViewController prematurely.
>>
>> Nothing else in the code references tab items or tab controllers. This is
>> baffling. We can set a breakpoint on dealloc to see when it is deleted,
>> but can't breakpoint on release to see what releases it. We build with
>> latest Xcode but this has been going on with older ones also.
>>
>> We tried adding a separate, strong reference to each tab view controller.
>> It still crashes, but it takes a few more tab switches before the controller
>> is released.
>>
>> Any suggestions for what might be causing this?
>>
>> Casey McDermott
>> Turtle Creek Software
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
--
__________________________________________
Markus Spoettl
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden