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: Why can't I access 'kill_something_info' probes?


Om <om.turyx@gmail.com> writes:

> I am writing some scriptlets to check trace signals. [...]

OK.

> [...]
> probe kernel.function("kill_something_info")
> {
> 	printf("info->si_signo=%d\n", $info->si_signo)
> 	printf("info->si_errno=%d\n", $info->si_errno)
> }
> [...]
> semantic error: failed to retrieve location attribute for local 'info'
> (dieoffset: 0x334d03): identifier '$info' at ./killtrace.stp:10:32
> semantic error: failed to retrieve location attribute for local 'info'
> (dieoffset: 0x334d03): identifier '$info' at ./killtrace.stp:11:32
> [...]

This is the dreaded "gcc omits debuginfo for inlined functions, especially
their parameters", aka systemtap PR 1155, and various GCC and RH bugzilla #s.

There is little one can do, except:

- try to find some other way to get at the context $info variable data,
  perhaps via a local variable within the function (requiring a statement probe),
  or by saving it from a caller site into a systemtap script-level variable
- try to place a (statement) probe into the caller of this inline function,
  where the same value may be available (perhaps under a different name)
- investigate whether a marker may be available
- recompile the kernel with CFLAGS += -fno-inline-functions-called-once,
  which can reduce the number of functions that are affected by the gcc bug
- recompile the kernel with Alex Oliva's var-tracking branch gcc, which
  can expose a mass of variables


- FChE


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