From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 95504 invoked by alias); 15 Jul 2019 16:52:24 -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 95480 invoked by uid 89); 15 Jul 2019 16:52:24 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-31.7 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=christian, Break, pipe, perspective X-HELO: mail-ot1-f54.google.com Received: from mail-ot1-f54.google.com (HELO mail-ot1-f54.google.com) (209.85.210.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 15 Jul 2019 16:52:22 +0000 Received: by mail-ot1-f54.google.com with SMTP id y20so1790540otk.7 for ; Mon, 15 Jul 2019 09:52:22 -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=Kr8ckM9CXOu/T+hjEQbZV+HA9t2dy+sEmT1U9zVJRwc=; b=skcb/ArRTxaIKgokpgtWCmSmOW4Q5m9JYeey3XeTjX1RdgzDGI1sioHnUDTrE7r9n+ H0otdDMbPRZbTdhIGiaSwemTOyK3Z1UTp1PiLk4781jqZgPINkJAuz63E3/OMyCsXUhE vDzgpmfKEL8iZ9ew6M/PBeKtzUEvOxXgcKd59XcOCvoq096LKBXbJ9pTi0j8YV1LCrt1 lDYkxHKjDEGbQHH22kPu90qcEFqMoSUA7U1El/mFRLUiLFxRfctKkQMMdOUz+sUpQdG4 QIU6TzGt2///uRO0RwbX/p73s5b1bTd7fDRBSlJiUzp5nPmxARE/RUkOheuVzb5NtxdC 0gFw== MIME-Version: 1.0 References: <20190605012421.252953-1-cbiesinger@google.com> In-Reply-To: From: "Christian Biesinger via gdb-patches" Reply-To: Christian Biesinger Date: Mon, 15 Jul 2019 16:52:00 -0000 Message-ID: Subject: Re: [PING] [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-07/txt/msg00364.txt.bz2 weekly ping On Mon, Jul 8, 2019 at 5:04 PM Christian Biesinger wrote: > > 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 > >