From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9886 invoked by alias); 14 Dec 2010 16:35:58 -0000 Received: (qmail 9785 invoked by uid 22791); 14 Dec 2010 16:35:56 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 14 Dec 2010 16:35:51 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oBEGZnG8006283 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 14 Dec 2010 11:35:50 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id oBEGZnIJ031723; Tue, 14 Dec 2010 11:35:49 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id oBEGZm6e026840; Tue, 14 Dec 2010 11:35:49 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id 7A52637848F; Tue, 14 Dec 2010 09:35:48 -0700 (MST) From: Tom Tromey To: pmuldoon@redhat.com Cc: gdb-patches@sourceware.org Subject: Re: [patch] Add an evaluation function hook to Python breakpoints. References: Date: Tue, 14 Dec 2010 16:35:00 -0000 In-Reply-To: (Phil Muldoon's message of "Mon, 13 Dec 2010 13:50:36 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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 X-SW-Source: 2010-12/txt/msg00239.txt.bz2 >>>>> "Phil" == Phil Muldoon writes: Phil> + PyObject *gdbpy_bp_eval = PyString_FromString ("evaluate"); This is leaked. However... Phil> + if (PyObject_HasAttr (py_bp, gdbpy_bp_eval)) Phil> + { Phil> + PyObject *result = PyObject_CallMethodObjArgs (py_bp, Phil> + gdbpy_bp_eval, Phil> + NULL); You can just use PyObject_HasAttrString and PyObject_CallMethod instead. Phil> +gdb_py_test_silent_cmd "python eval_bp1 = bp_eval(\"$bp_location2\")" "Set breakpoint" 0 Phil> +gdb_py_test_silent_cmd "python also_eval_bp1 = bp_also_eval(\"$bp_location2\")" "Set breakpoint" 0 I think there should also be a test for the case where there is an ordinary user breakpoint at the same location as the Python breakpoints. In this case, the user breakpoint should stop, but all the Python methods should be invoked first. Tom