From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19980 invoked by alias); 6 Dec 2013 15:49:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 19967 invoked by uid 89); 6 Dec 2013 15:49:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Dec 2013 15:49:30 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rB6FnNIk021194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 6 Dec 2013 10:49:23 -0500 Received: from psique (ovpn-113-192.phx2.redhat.com [10.3.113.192]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rB6FnKVY030023 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 6 Dec 2013 10:49:22 -0500 From: Sergio Durigan Junior To: Pedro Alves Cc: GDB Patches , Tom Tromey Subject: Re: [PATCH] Sanitize gdbarch access on probe/SDT API References: <1386225226-18549-1-git-send-email-sergiodj@redhat.com> <52A079DD.5050101@redhat.com> <52A1D61E.1050707@redhat.com> X-URL: http://www.redhat.com Date: Fri, 06 Dec 2013 15:49:00 -0000 In-Reply-To: <52A1D61E.1050707@redhat.com> (Pedro Alves's message of "Fri, 06 Dec 2013 13:50:22 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00247.txt.bz2 On Friday, December 06 2013, Pedro Alves wrote: > On 12/05/2013 10:12 PM, Sergio Durigan Junior wrote: >> @@ -1461,6 +1466,8 @@ stap_get_probes (VEC (probe_p) **probesp, struct objfile *objfile) >> bfd_vma base; >> struct sdt_note *iter; >> unsigned save_probesp_len = VEC_length (probe_p, *probesp); >> + struct regcache *regcache = get_current_regcache (); >> + struct gdbarch *gdbarch = get_regcache_arch (regcache); > > AFAICS, stap_get_probes isn't called when evaluating a probe, > but instead when getting the list of probes out of an objfile. Right. > Seems to me like this function is reachable even if the inferior > is not running yet. Is that why you couldn't use > get_selected_frame here? (because there's no frame?) Right. > If so, using get_current_regcache is wrong. If there's no thread at > all, then what does the regcache of the current thread mean? Indeed. Now that you put it that way, it makes total sense. > It sounds like you just managed to use it becauese > get_current_regcache doesn't error out when inferior_ptid is pointing > nowhere. OK, interesting. > As this is listing the probes in the objfile, and not using the >target's registers (afaics), can you use the objfile's arch here? Yes, I guess that's the best solution indeed. > With that out of the way, would it work to pass the frame pointer down >instead of the gdbarch? You mean that the callers should pass the frame pointers, instead of the relying on the callees to get it by themselves? -- Sergio