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: Can't set statement probe in self-built linux-4.4


On 07/14/2016 09:08 AM, Chris Dunlop wrote:
> Hi Frank,
> 
> On Fri, Jul 01, 2016 at 01:43:02PM +1000, Chris Dunlop wrote:
>> On Thu, Jun 30, 2016 at 08:57:38PM -0400, Frank Ch. Eigler wrote:
>>> Something's weird about your -vvvvv trace too; a similar command
>>> that works here gives a lot more "function cache ...." type lines.
>>>
>>> Any chance you could tar.xz up the whole vmlinux build tree?
>>
>> Of course: https://www.dropbox.com/s/l7cvs773mw8jqga/build.tar.xz?dl=0 (193M)
> 
> Any ideas?

$ grep DEBUG_INFO .config
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_SPLIT=y
CONFIG_DEBUG_INFO_DWARF4=y

I think SPLIT is the problem.  This puts all debuginfo into separate
.dwo objects, and then vmlinux itself only contains DW_AT_GNU_dwo_name
references from each CU.

There's no dwo_name support at all in elfutils yet, thus stap doesn't
support it either.

The function probe that you are getting is based only on the symbol
table, which is why you're not seeing any arguments either.  And
statement probes aren't available at all without working debuginfo.

For comparision, I get this on Fedora 24:

> $ stap -L 'kernel.function("register_shrinker").*' 
> kernel.function("register_shrinker@mm/vmscan.c:227").call $shrinker:struct shrinker* $size:size_t
> kernel.function("register_shrinker@mm/vmscan.c:227").callee("down_write@kernel/locking/rwsem.c:46") $sem:struct rw_semaphore*
> kernel.function("register_shrinker@mm/vmscan.c:227").callee("up_write@kernel/locking/rwsem.c:89") $sem:struct rw_semaphore*
> kernel.function("register_shrinker@mm/vmscan.c:227").exported $shrinker:struct shrinker* $size:size_t
> kernel.function("register_shrinker@mm/vmscan.c:227").return $return:int $shrinker:struct shrinker* $size:size_t

> $ stap -L 'kernel.statement("register_shrinker@*:*")'                                                                                                                                                                                            
> kernel.statement("register_shrinker@mm/vmscan.c:228") $shrinker:struct shrinker* $size:size_t
> kernel.statement("register_shrinker@mm/vmscan.c:231") $shrinker:struct shrinker* $size:size_t
> kernel.statement("register_shrinker@mm/vmscan.c:232") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:234") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:235") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:236") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:238") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:239") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:240") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:241") $shrinker:struct shrinker*
> kernel.statement("register_shrinker@mm/vmscan.c:242") $shrinker:struct shrinker*


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