From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28150 invoked by alias); 21 Jul 2009 11:19:12 -0000 Received: (qmail 28140 invoked by uid 22791); 21 Jul 2009 11:19:11 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx2.redhat.com (HELO mx2.redhat.com) (66.187.237.31) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 21 Jul 2009 11:19:01 +0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6LBIx5C002621 for ; Tue, 21 Jul 2009 07:18:59 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6LBIwjQ016438; Tue, 21 Jul 2009 07:18:59 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6LBIvc0013831; Tue, 21 Jul 2009 07:18:57 -0400 Subject: Re: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-0.9.8-184-gf982c59 From: Mark Wielaard To: systemtap@sourceware.org Cc: Josh Stone In-Reply-To: <20090721012207.17368.qmail@sourceware.org> References: <20090721012207.17368.qmail@sourceware.org> Content-Type: text/plain Date: Tue, 21 Jul 2009 11:19:00 -0000 Message-Id: <1248175137.3487.24.camel@springer.wildebeest.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit 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: 2009-q3/txt/msg00173.txt.bz2 Hi Josh, On Tue, 2009-07-21 at 01:22 +0000, jistone@sourceware.org wrote: > commit 0c16d51256bc77c2b5497b72ec43b7864d2b47a8 > Author: Josh Stone > Date: Mon Jul 20 16:32:33 2009 -0700 > > Allow dwflpp to take a vector of module names > > This will be used to load tracepoint modules as a bunch of little query > modules into a single dwflpp. > > * dwflpp.cxx (setup_user): take a vector instead of a single module > (dwflpp::dwflpp): form a vector in the singular case, and add a > variant that takes and passes through a vector of modules. This breaks user space mark probing. See make installcheck RUNTESTFLAGS="sdt.exp exelib.exp" for example. Most stuff will fail with "semantic error: libdwfl failure (getshdrstrndx): no error while resolving probe point" Which comes from dwarf_builder::probe_table::probe_table(). What goes wrong is that probe_table will try to fetch the probe table (initiated through dwarf_builder::build) from the dw module (initialized through dw = get_user_dw(sess, module_name)), if (get_param(parameters, TOK_MARK, mark_name)). But at that point dw->module isn't setup yet. I am not completely sure how to correct this. The following hack makes things work as before: diff --git a/dwflpp.cxx b/dwflpp.cxx index 0bba3f1..38be86b 100644 --- a/dwflpp.cxx +++ b/dwflpp.cxx @@ -418,6 +418,7 @@ dwflpp::setup_user(const vector& modules, bool debug module_name.c_str(), -1); // XXX: save mod! + module = mod; if (debuginfo_needed) dwfl_assert (string("missing process ") + That works, since it mimics what happened before your patch. And because there is really only one module name in the vector anyway. I checked it in so things at least work again for now. But it seems there must be a better/more elegant solution. Cheers, Mark