Semantic error with demo scripts..
Li Guanglei
guanglei@cn.ibm.com
Mon Sep 25 09:57:00 GMT 2006
S. P. Prasanna wrote:
> Hi,
>
>
> # ./proc_snoop.stp
> semantic error: probe point mismatch at position 0 (alternatives: _process begin end hrtimer(string) ioblock ioscheduler kernel module(string) netdev never pagefault process scheduler scsi syscall timer)
> while: resolving probe point signal.send
> semantic error: probe point mismatch at position 0 (alternatives: _process begin end hrtimer(string) ioblock ioscheduler kernel module(string) netdev never pagefault process scheduler scsi syscall timer)
> while: resolving probe point signal.handle
> Pass 2: analysis failed. Try again with more '-v' (verbose) options.
I tried on my ppc64, it will report:
semantic error: failed to retrieve location attribute for local 'sig'
(dieoffset: 0xad505): identifier '$sig' at
/usr/local/share/systemtap/tapset/signal.stp:377:11
It is because handle_signal is optimized as inline and currently we
can't visit the arguments of inline function due to the absent DWARF
info.
>
>
> # stap -v -g sched_snoop.stp Pass 1: parsed user script and 25 library script(s) in 230usr/0sys/235real ms.
> semantic error: no match for probe point
> while: resolving probe point kernel.inline("pull_task")
> semantic error: no match for probe point
> while: resolving probe point scheduler.migrate
> Pass 2: analyzed script: 5 probe(s), 29 function(s), 1 global(s) in 320usr/50sys/365real ms.
> Pass 2: analysis failed. Try again with more '-v' (verbose) options.
>
I failed too on a 4-way ppc64/2.6.17.13/elfutils 0.123. I looked at
the DWARF info of pull_task, but it looks good to me. Didn't figure
out why it failed. Here is the DWARF info:
...
<2><332512>: Abbrev Number: 58 (DW_TAG_inlined_subroutine)
DW_AT_sibling : <33254c>
DW_AT_abstract_origin: <332621>
DW_AT_ranges : 88224
DW_AT_call_file : 0
DW_AT_call_line : 0
<3><332521>: Abbrev Number: 71 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <33262f>
<3><332526>: Abbrev Number: 59 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <33263b>
DW_AT_location : 446571 (location list)
....
<1><332621>: Abbrev Number: 87 (DW_TAG_subprogram)
DW_AT_sibling : <332676>
DW_AT_name : (indirect string, offset: 0x168bf): pull_task
DW_AT_decl_file : 1
DW_AT_decl_line : 1802
DW_AT_prototyped : 1
DW_AT_inline : 1 (inlined)
<2><33262f>: Abbrev Number: 86 (DW_TAG_formal_parameter)
DW_AT_name : (indirect string, offset: 0x16dab): src_rq
DW_AT_decl_file : 1
DW_AT_decl_line : 1800
DW_AT_type : <32fe63>
<2><33263b>: Abbrev Number: 86 (DW_TAG_formal_parameter)
...
>
> # ./sys.stp
> semantic error: no match for probe point
> while: resolving probe point kernel.function("sys_chown16")
> semantic error: no match for probe point
> while: resolving probe point kernel.function("sys_fchown16")
> semantic error: no match for probe point
> while: resolving probe point kernel.function("sys_getgid16")
>
>
It works fine for me. I looked at the latest codes in CVS, and found
these probes are already optional.
More information about the Systemtap
mailing list