[lttng-dev] tracing program flow

Oestman, Fredrik Fredrik_Oestman at mentor.com
Mon May 7 04:08:53 EDT 2012


Chuch Tuffli wrote:
> I'm investigating the feasibility of replacing some home grown tracing
> code with LTTng and am looking for advice from others who have used
> LTTng to trace program flow (i.e. trace function entry and exit
> points). One of the strengths of LTTng seems to be the ability to
> selectively enable tracepoints of interest (much more useful than our
> all-or-nothing tracing). To get this type of capability, would I need
> to implement an entry and exit tracepoint for each function or is
> there a better approach? Any other best practices people would be
> willing to share?

A customer had a similar problem. We used two different ways to instrument
the code: full instrumentation using the GCC option -finstrument-functions
and targeted instrumentation of a class of functions. Our experience:

- Full instrumentation is very intrusive and inferior to sampling methods
  if you are only looking to profile the code
- Full instrumentation is sometimes useful for verifying exact call
  sequences
- Full instrumentation can also be used to find out which function is
  active at a specific point in time, when some other event occurs
  (trace correlation)
- Using targeted instrumentation, we constructed a pulse train from the
  trace events, which could then be used to measure function execution
  times. This way, issues in the application could be found and then
  resolved. This was a real-time embedded system.

We use our commercial trace display and analysis tool for analysis. I
don't know what options there are in this respect.


Cheers,

Fredrik Östman




More information about the lttng-dev mailing list