This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Questions about tracing static function and statement probe


Frank Ch. Eigler <fche@redhat.com> wrote:
"sunzen w." <sunzen@gmail.com> writes:

> [...] For instance, probes on entry/exit of
> get_transaction(@fs/jbd/trasaction.c) fail because of semantic
> errors (failed to retrieve location attibution for target virable,
> or no match for probe point).  But, probes on some other static
> functions(such as ext3_add_nondir@fs/ext3/namei.c,
> add_dirent_to_buf@fs/ext3/namei.c) do work.

You are encountering two separate problems here.  Neither is strictly
speaking a systemtap bug, but rather a problem with the gcc-generated
debugging information.  This has recently become very poor for
functions that become aggressively inlined.  The result is that
parameters to inlined functions are not properly recorded, and inlined
functions cannot have .return probes.

Naturally get_transaction is not an inline function. It seems that it has been converted to inline function by Gcc. Is there a way to disable the automatic conversion?

The first bug in gcc will be fixed before too long.  The second one is
trickier.  What this all means is that, for now, systemtap probes
desired in such functions need to be relocated to somewhere within
their callers.

But as the second problem i described, statement probe also doesn't work. Do I miss some thing?

Any guidance will be appreciated.
--
sunzen
<<freedom & enjoyment>>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]