gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Profiling Traces


From: David Chisnall
Subject: Re: Profiling Traces
Date: Sat, 28 Dec 2013 12:27:17 +0000

Hi Ivan,

TESLA has a web site, which covers getting started:

http://www.cl.cam.ac.uk/research/security/ctsrd/tesla/build.html

For the traces, I actually replaced the debugging printf handler to log the raw 
events.  We're hopefully going to separate TESLA into some cleaner layering, so 
the event-generation code is more isolated from the event-handling code and we 
can more easily plug other bits of tracing into it.  

If you just want traces of message sends, then the latest version of the 
runtime has a mechanism for interposing on a particular selector, which is what 
TESLA uses.

David

On 23 Dec 2013, at 15:49, Ivan Vučica <address@hidden> wrote:

> Thread necromancy!
> 
> During GSoC2013, I would have loved to have something like the contents of 
> "Drawing.log", annotated with screenshots and perhaps some additional state 
> etc. As you mentioned, it would have helped a lot in development of the Opal 
> backend.
> 
> Is something like generating screenshots (or making a function call), then 
> integrating an <img src=""> inside the log, possible with TESLA?
> 
> Any instructions on using TESLA?
> 
> On Wed Oct 02 2013 at 3:59:25 PM, David Chisnall <address@hidden> wrote:
> Hello all of the GNUstep developers,
> 
> We've recently been working on a tool called TESLA that allows you to write 
> temporal assertions (e.g. before you get here, this other function must have 
> been called and returned this value) that are checked at run time, but also 
> provides a convenient way of adding instrumentation to programs.
> 
> I've uploaded a couple of profiling traces to give people an idea of the 
> kinds of thing this can generate:
> 
> http://theravensnest.org/Drawing.log
> http://theravensnest.org/NSCursor.log
> 
> The first is a log of all of the drawing messages in the protocol defined by 
> NSGraphicsContext (i.e. the thing used to communicate between -gui and 
> -back), indented based on the current view and cell that is responsible for 
> the drawing.  This doesn't provide a full stack trace, just some context.  
> The motivation for this is Ivan's work on the Opal back end, and looking at 
> exactly how the back end is used.  Are we doing too many pushes and pops of 
> graphics state, or saving and restoring when we don't need to?  Are we 
> calling methods a lot that are poorly optimised in the back end?
> 
> The second is a stack trace, generated in every place where we call a push or 
> pop method.  The motivation for this was the recent work trying to find bugs 
> in the NSCursor balancing code.  Unfortunately, I wasn't able to reproduce 
> the bugs when I tried (maybe they're all fixed?) and so this isn't very 
> useful, although it might be interesting.
> 
> Can anyone else think of other useful traces that we might want to generate?
> 
> David
> 
> -- Sent from my Apple II
> 
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev


-- Sent from my Cray X1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]