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]

[Bug translator/11751] on s390x, externalvar.exp gets libdwfl failures


------- Additional Comments From dsmith at redhat dot com  2010-06-30 14:19 -------
(In reply to comment #6)
> > > $ eu-readelf -s testsuite/libexternalvar.so | grep lib_call
> > 
> > # eu-readelf -s testsuite/libexternalvar.so | grep lib_call
> >    48: 000000000000062c     18 FUNC    LOCAL  DEFAULT       10 lib_call
> 
> thanks. so we "guessed" the address of the lib_call function wrongly. how odd. I
> assume ./loc2c-test -e testsuite/libexternalvar.so 0x62c libvar does spit out
> the location information for libvar?

# ./loc2c-test -e testsuite/libexternalvar.so 0x62c libvar
#define PROBEADDR 0x62cULL
static void print_value(struct pt_regs *regs)
{
  intptr_t value;
  {
    uintptr_t addr;
    { // DWARF expression: 0x3(6768)
      {
        uintptr_t s0;
        s0 = 0x1a70UL;
        addr = s0;
      }
    }
    { int32_t value = deref (4, addr); value = value; }
  }
  /* max expression stack depth 1 */
  printk (" ---> %ld\n", (unsigned long) value);
  return;

 deref_fault:
  printk (" => BAD ACCESS\n");
}
 
> Could you run stap -vvvvv -p4 -e 'probe
> process("testsuite/libexternalvar.so").function("lib_call") { printf("libvar =
> %d\n", $libvar); }' to see how/what/where we get that 0x1a70 address in the
> first place?

# stap -vvvvv -p4 -e 'probe
process("testsuite/libexternalvar.so").function("lib_call") { printf("libvar =
%d\n", $libvar); }'
SystemTap translator/driver (version 1.2/0.141 non-git sources)
Copyright (C) 2005-2010 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
Session arch: s390 release: 2.6.18-194.el5
Created temporary directory "/tmp/stapwJ00Va"
Parsed kernel "/lib/modules/2.6.18-194.el5/build/.config", number of tuples: 744
Parsed kernel "/lib/modules/2.6.18-194.el5/build/Module.symvers", number of
vmlinux exports: 2613
Searched "/usr/local/share/systemtap/tapset/s390/*.stp", found 3
Searched "/usr/local/share/systemtap/tapset/*.stp", found 68
Pass 1: parsed user script and 71 library script(s) using
29372virt/20904res/2628shr kb, in 190usr/10sys/204real ms.
dwarf_builder::build for /root/s390x/testsuite/libexternalvar.so
parsed 'lib_call', func 'lib_call'
pattern '/root/s390x/testsuite/libexternalvar.so' matches module
'/root/s390x/testsuite/libexternalvar.so'
focused on module '/root/s390x/testsuite/libexternalvar.so = [0x10000-0x11a78,
bias 0x0] file /root/s390x/testsuite/libexternalvar.so ELF machine s390| (code 22)
focused on module '/root/s390x/testsuite/libexternalvar.so'
module function cache /root/s390x/testsuite/libexternalvar.so size 2
module function cache /root/s390x/testsuite/libexternalvar.so hit lib_call
selected function lib_call
function cache
/root/s390x/testsuite/libexternalvar.so:/root/src/testsuite/systemtap.base/externalvar_lib.c
size 2
function cache
/root/s390x/testsuite/libexternalvar.so:/root/src/testsuite/systemtap.base/externalvar_lib.c
hit lib_call
selected function lib_call
prologue searching function 'lib_call'
0x62c-0x63e@/root/src/testsuite/systemtap.base/externalvar_lib.c:28
checking line record 0x62c@/root/src/testsuite/systemtap.base/externalvar_lib.c:28
checking line record 0x636@/root/src/testsuite/systemtap.base/externalvar_lib.c:30
prologue found function 'lib_call' = 0x636
probe lib_call@/root/src/testsuite/systemtap.base/externalvar_lib.c:28
process=/root/s390x/testsuite/libexternalvar.so reloc=.dynamic pc=0x636
entry-pc lookup (dwarf_entrypc dieoffset: 0x17c) = 0x62c (rc 0)
finding location for local 'libvar' near address 0x636, module bias 0x10000
get_cfa_ops @0x10636, module_start @0x10000
not found cfa
dwarf_builder releasing user dwflpp /root/s390x/testsuite/libexternalvar.so
Eliding side-effect-free singleton block operator '{' at <input>:1:67
Resolution problem with probe
process("/root/s390x/testsuite/libexternalvar.so").function("lib_call@/root/src/testsuite/systemtap.base/externalvar_lib.c:28")
printf("libvar = %d\\n", $libvar)
semantic error: emit_address internal error, dwfl_addrmodule failed, address
0x1a70: identifier '$libvar' at <input>:1:93
        source: probe
process("testsuite/libexternalvar.so").function("lib_call") { printf("libvar =
%d\n", $libvar); }
                                                                               
                            ^
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s)
using 29912virt/22076res/3304shr kb, in 10usr/0sys/16real ms.
Pass 2: analysis failed.  Try again with another '--vp 01' option.
Running rm -rf /tmp/stapwJ00Va
Spawn waitpid result (0x802): 0


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11751

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


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