From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22090 invoked by alias); 17 Jul 2012 21:57:05 -0000 Received: (qmail 22082 invoked by uid 22791); 17 Jul 2012 21:57:04 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,SPF_HELO_PASS,TW_BJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 17 Jul 2012 21:56:49 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q6HLumLT028719 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 17 Jul 2012 17:56:48 -0400 Received: from host2.jankratochvil.net (ovpn-116-30.ams2.redhat.com [10.36.116.30]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q6HLuiWu003236 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Tue, 17 Jul 2012 17:56:47 -0400 Date: Tue, 17 Jul 2012 21:57:00 -0000 From: Jan Kratochvil To: gdb-patches@sourceware.org Subject: Re: [RFA 3/4] Improved linker-debugger interface Message-ID: <20120717215641.GA10049@host2.jankratochvil.net> References: <20120712123406.GA29236@redhat.com> <20120712123554.GD29236@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120712123554.GD29236@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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 X-SW-Source: 2012-07/txt/msg00246.txt.bz2 On Thu, 12 Jul 2012 14:35:54 +0200, Gary Benson wrote: > --- a/gdb/probe.h > +++ b/gdb/probe.h > @@ -210,6 +210,17 @@ extern void info_probes_for_ops (char *arg, int from_tty, > > extern struct cmd_list_element **info_probes_cmdlist_get (void); > > +/* Return the argument count of the specified probe. */ /* OBJFILE must be known to have probes support. */ > + > +extern unsigned get_probe_argument_count (struct objfile *objfile, > + struct probe *probe); > + > +/* Evaluate argument N of the specified probe. */ /* OBJFILE must be known to have probes support. N must be between 0 inclusive and get_probe_argument_count exclusive. */ > + > +extern struct value *evaluate_probe_argument (struct objfile *objfile, > + struct probe *probe, > + unsigned n); > + > /* A convenience function that finds a probe at the PC in FRAME and > evaluates argument N, with 0 <= N < number_of_args. If there is no > probe at that location, or if the probe does not have enough arguments, > diff --git a/gdb/probe.c b/gdb/probe.c > index 77f3b13..a61f4ea 100644 > --- a/gdb/probe.c > +++ b/gdb/probe.c > @@ -658,6 +658,30 @@ info_probes_command (char *arg, int from_tty) > > /* See comments in probe.h. */ > > +unsigned > +get_probe_argument_count (struct objfile *objfile, struct probe *probe) > +{ > + gdb_assert (objfile->sf && objfile->sf->sym_probe_fns); > + > + return objfile->sf->sym_probe_fns->sym_get_probe_argument_count (objfile, > + probe); > +} > + > +/* See comments in probe.h. */ > + > +struct value * > +evaluate_probe_argument (struct objfile *objfile, struct probe *probe, > + unsigned n) > +{ > + gdb_assert (objfile->sf && objfile->sf->sym_probe_fns); > + > + return objfile->sf->sym_probe_fns->sym_evaluate_probe_argument (objfile, > + probe, > + n); probe and n can be on single line, it is 76 columns [yes, it is copy-paste]. > +} > + > +/* See comments in probe.h. */ > + > struct value * > probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n) > { > @@ -668,17 +692,12 @@ probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n) > probe = find_probe_by_pc (get_frame_pc (frame), &objfile); > if (!probe) > return NULL; > - gdb_assert (objfile->sf && objfile->sf->sym_probe_fns); > > - n_probes > - = objfile->sf->sym_probe_fns->sym_get_probe_argument_count (objfile, > - probe); > + n_probes = get_probe_argument_count (objfile, probe); > if (n >= n_probes) > return NULL; > > - return objfile->sf->sym_probe_fns->sym_evaluate_probe_argument (objfile, > - probe, > - n); > + return evaluate_probe_argument (objfile, probe, n); > } > > /* See comment in probe.h. */ It is pre-approved but please do not check it in without any use, only with some other patch depending on it. Thanks, Jan