Questions about tracing static function and statement probe

sunzen w. sunzen@gmail.com
Tue Jul 17 15:55:00 GMT 2007


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>>



More information about the Systemtap mailing list