From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10708 invoked by alias); 30 Jun 2010 14:20:30 -0000 Received: (qmail 10279 invoked by uid 48); 30 Jun 2010 14:19:56 -0000 Date: Wed, 30 Jun 2010 17:02:00 -0000 Message-ID: <20100630141956.10278.qmail@sourceware.org> From: "dsmith at redhat dot com" To: systemtap@sources.redhat.com In-Reply-To: <20100624180716.11751.dsmith@redhat.com> References: <20100624180716.11751.dsmith@redhat.com> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug translator/11751] on s390x, externalvar.exp gets libdwfl failures X-Bugzilla-Reason: AssignedTo Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2010-q2/txt/msg00709.txt.bz2 ------- 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 :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 :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.