From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13013 invoked by alias); 4 Mar 2014 10:37:18 -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 13004 invoked by uid 89); 4 Mar 2014 10:37:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=BAYES_00,KAM_STOCKGEN,RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: satori.sandbox-dev.search.yandex.net Received: from satori.sandbox-dev.search.yandex.net (HELO satori.sandbox-dev.search.yandex.net) (5.255.204.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 04 Mar 2014 10:37:17 +0000 Received: by satori.sandbox-dev.search.yandex.net (Postfix, from userid 30101) id E85CCF40B33; Tue, 4 Mar 2014 14:37:14 +0400 (MSK) From: Maxim Bublis To: gdb-patches@sourceware.org Cc: Maxim Bublis Subject: [PATCH 2/3] gdb/python: raise TypeError instead of abort() on calling .value() method for label symbol object Date: Tue, 04 Mar 2014 10:37:00 -0000 Message-Id: <1393929360-31299-3-git-send-email-satori@yandex-team.ru> In-Reply-To: <1393929360-31299-1-git-send-email-satori@yandex-team.ru> References: <1393929360-31299-1-git-send-email-satori@yandex-team.ru> X-SW-Source: 2014-03/txt/msg00064.txt.bz2 --- gdb/ChangeLog | 6 ++++++ gdb/python/py-symbol.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2129d6f..67749e9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-03-04 Maxim Bublis + + * gdb/python/py-symbol.c (sympy_value): Throw TypeError exception + instead of abort() on calling .value() method for + Symbol object with SYMBOL_LOC_LABEL address class. + 2014-03-03 Tom Tromey * elfread.c (probe_key): Change to bfd_data. diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 6900d58..5e22309 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -262,6 +262,12 @@ sympy_value (PyObject *self, PyObject *args) return NULL; } + if (SYMBOL_CLASS (symbol) == LOC_LABEL) + { + PyErr_SetString (PyExc_TypeError, "cannot get the value of a label"); + return NULL; + } + TRY_CATCH (except, RETURN_MASK_ALL) { if (frame_obj != NULL) -- 1.7.9.5