Re: Debugging -setNeedsDisplayInRect:
Re: Debugging -setNeedsDisplayInRect:
- Subject: Re: Debugging -setNeedsDisplayInRect:
- From: Nick Zitzmann <email@hidden>
- Date: Fri, 27 Jul 2012 09:55:20 -0600
On Jul 27, 2012, at 2:35 AM, Markus Spoettl <email@hidden> wrote:
> On 7/27/12 5:10 AM, Nick Zitzmann wrote:
>> I've got a view that, according to Quartz Debug, is invalidating a large and
>> unnecessary portion of the view when certain user events happen.
>>
>> The problem is, I have no idea what is causing this to happen. What
>> strategies are best for debugging the -setNeedsDisplayInRect: method to find
>> out specifically who is calling it where and with what frame?
>>
>> I can't put a symbolic breakpoint on the method, because it gets called very
>> often, including when the app is activated, which causes Xcode to reactivate
>> itself and get in the way. I then changed the breakpoint to auto-continue and
>> just print the stack trace each time the method is called, but now I feel
>> like I'm looking for a needle within a huge console log. I really need it to
>> break when the rect is of a certain size, but the NSRect data structure is
>> more than twice as large as a CPU register on x86_64, so the structure is
>> placed on the stack, but how do I break on a variable buried within the
>> stack?
>
> Why not overwrite -setNeedsDisplayInRect: put a little if logic to determine if that's a size you would like to have more info on, add a NSLog() inside and put your breakpoint on the NSLog() call?
But I need to be able to see **all** invocations of the method from **all** NSViews to catch the culprit, because I have a rather complicated view hierarchy, including some views for which I don't have the source, and I don't know exactly which view is doing this. In order to do that, I need to set a conditional breakpoint, and this would be easy if an NSRect could be stored in a register, but how do I set a conditional breakpoint when the variable I want to investigate is on the stack? And where would I find each of the CGFloats on the stack?
Nick Zitzmann
<http://www.chronosnet.com/>
_______________________________________________
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