From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25196 invoked by alias); 9 Dec 2014 10:50:04 -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 25184 invoked by uid 89); 9 Dec 2014 10:50:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 09 Dec 2014 10:50:03 +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 sB9AnwSV024463 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 9 Dec 2014 05:49:58 -0500 Received: from localhost.localdomain (ovpn-112-31.ams2.redhat.com [10.36.112.31]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id sB9AnucG016913; Tue, 9 Dec 2014 05:49:57 -0500 Message-ID: <5486D3D4.5060202@redhat.com> Date: Tue, 09 Dec 2014 10:50:00 -0000 From: Phil Muldoon MIME-Version: 1.0 To: Doug Evans , gdb-patches@sourceware.org, eliz@gnu.org Subject: Re: [PATCH] New python function gdb.lookup_objfile. References: In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-12/txt/msg00192.txt.bz2 On 09/12/14 02:39, Doug Evans wrote: > Hi. > > This patch implements a new python function gdb.lookup_objfile. > It provides the ability to look up an objfile given a file name > or build id. > > While one could call gdb.objfiles() and then scan over that, > it requires construction of the list, and with *lots* of objfiles > it is a bit cumbersome. > > Regression tested on amd64-linux. Thanks. > +@findex gdb.lookup_objfile > +@defun gdb.lookup_objfile (name @r{[}, by_build_id{]}) > +Look up @var{name}, which is a file name, in the list of objfiles > +for the current program space (@pxref{Progspaces In Python}). > +If the objfile is not found then a Python @code{ValueError} exception > +is thrown. Do wildcard or partial matches work? It would be excellent if they did, and if so, a note in the documentation. If not, how much work do you think it would be to have this functionality? A soft objection. Not a fan of functions that return an Exception on "item not found" personally. I prefer to return None, and save exceptions for errors. But I understand that in some projects this paradigm is used. > +{ > + static char *keywords[] = { "name", "by_build_id", NULL }; > + const char *name; > + PyObject *by_build_id_obj = NULL; > + int by_build_id; > + struct objfile *objfile; > + > + if (! PyArg_ParseTupleAndKeywords (args, kw, "s|O!", keywords, > + &name, &PyBool_Type, &by_build_id_obj)) > + return NULL; If "name" is an empty string should we just immediately return an exception here? There are some operations later that depend on strlen. I had a quick look, and it seems none of the functions have a real hard issue with zero string lookups, but it might be best to check here first. Cheers Phil