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 
<cocoa-...@esoteritech.com> 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 <supp...@turtlesoft.com> 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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/cocoa-dev%40esoteritech.com

This email sent to cocoa-...@esoteritech.com
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/ms_lists%40shiftoption.com

This email sent to ms_li...@shiftoption.com



--
__________________________________________
Markus Spoettl
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to