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