From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79002 invoked by alias); 18 Jun 2019 20:15:39 -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 78994 invoked by uid 89); 18 Jun 2019 20:15:39 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-29.3 required=5.0 tests=AWL,BAYES_00,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,USER_IN_DEF_SPF_WL autolearn=ham version=3.3.1 spammy=H*i:sk:2019060 X-HELO: mail-ot1-f65.google.com Received: from mail-ot1-f65.google.com (HELO mail-ot1-f65.google.com) (209.85.210.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Jun 2019 20:15:37 +0000 Received: by mail-ot1-f65.google.com with SMTP id n5so16836064otk.1 for ; Tue, 18 Jun 2019 13:15:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=94QJgTdwWZdM9IeUvdccqT7KSThRHUXM3iMax15FMcQ=; b=bz0379xSmiRIQAcsGfO8T/JgxPgaXaNQAXfh4E3jyuIG3rgNlB0+te35wfLWP1kRgI NzTHt1goMEsog/FEYU91S0I8MXcjnX6aMCxtRKsRPhNBDiNGqZLqPQONoEVeImlgwDm1 TkHRK7Et8koqj9a0P0POBuXnPfl+UzwTJUVI457Ib/EtCpJIdLadVVAehnNZtacOxl/9 6vsJG4naZxnGQbS0n4feD07foMBfMz/3XwiD2WZJrUXM2onxFnpmLNIs5/9o/co3UYUZ ot9tXk7UVacXtDO91Z2er6Q8Q5pkALJeLxXRAotvONC+19VVdgvjy+fPnEbw3Fhy+eAP drkQ== MIME-Version: 1.0 References: <20190605012421.252953-1-cbiesinger@google.com> In-Reply-To: <20190605012421.252953-1-cbiesinger@google.com> From: "Christian Biesinger via gdb-patches" Reply-To: Christian Biesinger Date: Tue, 18 Jun 2019 20:15:00 -0000 Message-ID: Subject: Re: [PATCH][PR/24474] Make gdb.lookup_static_symbol also check the STATIC_SCOPE To: Christian Biesinger via gdb-patches Content-Type: text/plain; charset="UTF-8" X-SW-Source: 2019-06/txt/msg00359.txt.bz2 ping? On Tue, Jun 4, 2019 at 8:24 PM Christian Biesinger wrote: > > gdb/ChangeLog: > > 2019-06-04 Christian Biesinger > > PR/24474: Make gdb.lookup_global_symbol also check the STATIC_SCOPE > because from a C/C++ developer's perspective, these are also globals. > * NEWS: Mention this change. > * python/py-symbol.c (gdbpy_lookup_global_symbol): Call > lookup_static_symbol if lookup_global_symbol returns NULL. > > gdb/testsuite/ChangeLog: > > 2019-06-04 Christian Biesinger > > * gdb.python/py-symbol.c: Add a static variable and one in an anonymous > namespace. > * gdb.python/py-symbol.exp: Check that lookup_global_symbol finds those > variables. > > > --- > gdb/NEWS | 2 ++ > gdb/python/py-symbol.c | 11 +++++++++++ > gdb/testsuite/gdb.python/py-symbol.c | 5 +++++ > gdb/testsuite/gdb.python/py-symbol.exp | 13 +++++++++++++ > 4 files changed, 31 insertions(+) > > diff --git a/gdb/NEWS b/gdb/NEWS > index ded1fce406..bfd8d0a191 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -30,6 +30,8 @@ > ** gdb.Type has a new property 'objfile' which returns the objfile the > type was defined in. > > + ** gdb.lookup_global_symbol will now also find symbols with static linkage. > + > * New built-in convenience variables $_shell_exitcode and $_shell_exitsignal > provide the exitcode or exit status of the shell commands launched by > GDB commands such as "shell", "pipe" and "make". > diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c > index 8605ae71a2..5636ef9013 100644 > --- a/gdb/python/py-symbol.c > +++ b/gdb/python/py-symbol.c > @@ -456,6 +456,17 @@ gdbpy_lookup_global_symbol (PyObject *self, PyObject *args, PyObject *kw) > GDB_PY_HANDLE_EXCEPTION (except); > } > > + if (symbol == NULL) { > + try > + { > + symbol = lookup_static_symbol (name, (domain_enum) domain).symbol; > + } > + catch (const gdb_exception &except) > + { > + GDB_PY_HANDLE_EXCEPTION (except); > + } > + } > + > if (symbol) > { > sym_obj = symbol_to_symbol_object (symbol); > diff --git a/gdb/testsuite/gdb.python/py-symbol.c b/gdb/testsuite/gdb.python/py-symbol.c > index f77c8c8585..06a931bf5d 100644 > --- a/gdb/testsuite/gdb.python/py-symbol.c > +++ b/gdb/testsuite/gdb.python/py-symbol.c > @@ -32,9 +32,14 @@ class SimpleClass > return i; /* Break in class. */ > } > }; > + > +namespace { > + int anon = 10; > +}; > #endif > > int qq = 72; /* line of qq */ > +static int rr = 42; /* line of rr */ > > int func (int arg) > { > diff --git a/gdb/testsuite/gdb.python/py-symbol.exp b/gdb/testsuite/gdb.python/py-symbol.exp > index 5b8a2be7c4..722fcda0f0 100644 > --- a/gdb/testsuite/gdb.python/py-symbol.exp > +++ b/gdb/testsuite/gdb.python/py-symbol.exp > @@ -48,6 +48,16 @@ gdb_test "python print (gdb.lookup_global_symbol('qq').needs_frame)" \ > "False" \ > "print whether qq needs a frame" > > +set rr_line [gdb_get_line_number "line of rr"] > +gdb_test "python print (gdb.lookup_global_symbol ('rr').line)" "$rr_line" \ > + "print line number of rr" > + > +gdb_test "python print (gdb.lookup_global_symbol ('rr').value ())" "42" \ > + "print value of rr" > + > +gdb_test "python print (gdb.lookup_global_symbol ('rr').needs_frame)" \ > + "False" \ > + "print whether rr needs a frame" > > if ![runto_main] then { > fail "can't run to main" > @@ -137,6 +147,9 @@ gdb_start > gdb_reinitialize_dir $srcdir/$subdir > gdb_load ${binfile}-cxx > > +gdb_test "python print (gdb.lookup_global_symbol ('(anonymous namespace)::anon').value ())" "10" \ > + "print value of rr" > + > if ![runto_main] then { > fail "can't run to main" > return 0 > -- > 2.22.0.rc1.311.g5d7573a151-goog >