From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27330 invoked by alias); 12 Jan 2015 17:59:34 -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 27317 invoked by uid 89); 12 Jan 2015 17:59:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail-ob0-f172.google.com Received: from mail-ob0-f172.google.com (HELO mail-ob0-f172.google.com) (209.85.214.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 12 Jan 2015 17:59:31 +0000 Received: by mail-ob0-f172.google.com with SMTP id va8so23552810obc.3 for ; Mon, 12 Jan 2015 09:59:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=J/ljssKkxLREVO391kQT6rjviFL7wgUyix7XY6409gc=; b=YOckbMsVIxiEazhd88YXqQoKVvLvH3BUL4Ku7lt4wAnMEw43YwhqiAZ7rhwg4OANAo n5oTAG1lrfeKJn7apHN3hZzRKkukUnSUqrPN0l5i1h/2eFkMGLMYyZMMLa6nN2QYTX5C bVJUf6xeR8flaDnR7g0yaQg2JI2T5Yvk8sOZ0fsbfZm+Wz+/CBaReL3qWsIHGb0clbgR 4dGSxWmk/3bIfMMaLdHrDMZ3DupROlNI0Ty+asDaXDk0jT3RNpo3WB/RZiI3vLjnzTfO YW33kkTJ9tyVge5H+tC697qsOFlPA7AUuJHCro/NqQXvFIcfnAENcVGo48AK9YJqnoWt SdEQ== X-Gm-Message-State: ALoCoQl6EN5qxCC7IQKqm/LYSfNJIOGr2rwykrO7fklCFFKPls3KENACPCwL+NiJ4t+rvRgpYKfJ MIME-Version: 1.0 X-Received: by 10.60.173.211 with SMTP id bm19mr18077488oec.66.1421085569686; Mon, 12 Jan 2015 09:59:29 -0800 (PST) Received: by 10.182.222.98 with HTTP; Mon, 12 Jan 2015 09:59:29 -0800 (PST) In-Reply-To: <1421083588-927-1-git-send-email-brobecker@adacore.com> References: <1421083588-927-1-git-send-email-brobecker@adacore.com> Date: Mon, 12 Jan 2015 17:59:00 -0000 Message-ID: Subject: Re: FYI: [python/Ada] gdb.lookup_type fails to looking primitive type From: Doug Evans To: Joel Brobecker Cc: gdb-patches Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg00311.txt.bz2 On Mon, Jan 12, 2015 at 9:26 AM, Joel Brobecker wrote: > The following change... > > commit 1994afbf19892c9e614a034fbf1a5233e9addce3 > Date: Tue Dec 23 07:55:39 2014 -0800 > Subject: Look up primitive types as symbols. > > ... caused the following regression: > > % gdb > (gdb) set lang ada > (gdb) python print gdb.lookup_type('character') > Traceback (most recent call last): > File "", line 1, in > gdb.error: No type named character. > Error while executing Python code. > > This is because the language_lookup_primitive_type_as_symbol call > was moved to the la_lookup_symbol_nonlocal hook. A couple of > implementations have been upated accordingly, but the Ada version > has not. This patch fixes this omission. > > gdb/ChangeLog: > > * ada-lang.c (ada_lookup_symbol_nonlocal): If name not found > in static block, then try searching for primitive types. > > gdb/testsuite/ChangeLog: > > * gdb.python/py-lkup_type.exp: New file. > > Tested on x86_64-linux, no regression. It's getting late, here, > so I will push tomorrow, as I'd like to have the fix before we > branch. Awesome, thanks. Nit: py-lkup-tupe.exp instead of py-lkup_type.exp? Or even py-lookup-type.exp. Plus one more comment below. > diff --git a/gdb/testsuite/gdb.python/py-lkup_type.exp b/gdb/testsuite/gdb.python/py-lkup_type.exp > new file mode 100644 > index 0000000..d8fb9e7 > --- /dev/null > +++ b/gdb/testsuite/gdb.python/py-lkup_type.exp > @@ -0,0 +1,59 @@ > +# Copyright (C) 2015 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see . > + > +# This file is part of the GDB testsuite. It tests the mechanism > +# of exposing types to Python. > + > +load_lib gdb-python.exp > + > +# Note that the purpose of this testcase is to test the behavior > +# of gdb.lookup_type searching for the primitive types internally > +# created by each language since GDB. So, we must start GDB without > +# loading any symbol in. > + > +gdb_exit > +gdb_start > +gdb_reinitialize_dir $srcdir/$subdir > + > +# Skip all tests if Python scripting is not enabled. > +if { [skip_python_tests] } { continue } > + > +proc test_lookup_type { lang type_name } { > + gdb_test_no_output "set language ${lang}" > + gdb_test_no_output "python gdb.lookup_type('${type_name}')" \ > + "lookup type ${type_name} using language ${lang}" > +} I wouldn't have expected gdb_test_no_output to work here for python.lookup_type, though I can see that it does. This is no different than "python 1+1": it doesn't print anything either. [I wonder if we can fix that without having to add a knob. Would anything break if we started printing the result here? Possibly I guess.] It's ok to leave as is, but you might want to add a clarifying comment. Maybe something like > + gdb_test_no_output "set language ${lang}" > + # gdb discards python results, so what we're checking for here is the > + # presence of an error message. > + gdb_test_no_output "python gdb.lookup_type('${type_name}')" \ > + "lookup type ${type_name} using language ${lang}" > + > +test_lookup_type "ada" "character" > + > +test_lookup_type "c" "char" > + > +test_lookup_type "d" "ucent" > + > +test_lookup_type "fortran" "character" > + > +test_lookup_type "go" "int32" > + > +test_lookup_type "java" "byte" > + > +test_lookup_type "modula-2" "CARDINAL" > + > +test_lookup_type "opencl" "ushort" > + > +test_lookup_type "objective-c" "char" > + > +test_lookup_type "opencl" "ushort" > + > +test_lookup_type "pascal" "char" > -- > 1.9.1 >