[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