Questions about tracing static function and statement probe

Frank Ch. Eigler fche@redhat.com
Fri Jul 13 16:11:00 GMT 2007


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

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.

- FChE



More information about the Systemtap mailing list