On Jul 27, 2012, at 2:35 AM, Markus Spoettl <ms_li...@shiftoption.com> 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 (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