From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 128516 invoked by alias); 19 Mar 2015 08:12:31 -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 128506 invoked by uid 89); 19 Mar 2015 08:12:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL autolearn=ham version=3.3.2 X-HELO: sasl.smtp.pobox.com Received: from pb-sasl1.int.icgroup.com (HELO sasl.smtp.pobox.com) (208.72.237.25) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Mar 2015 08:12:30 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 9745C383F7; Thu, 19 Mar 2015 04:12:28 -0400 (EDT) Received: from pb-sasl1.int.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 8D490383F6; Thu, 19 Mar 2015 04:12:28 -0400 (EDT) Received: from rusty (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id D19D8383F3; Thu, 19 Mar 2015 04:12:27 -0400 (EDT) From: Andy Wingo To: Alexander Smundak Cc: Doug Evans , gdb-patches Subject: Re: [RFC] [PATCH] Provide the ability to write the frame unwinder in Python References: <21714.40641.510825.30998@ruffy2.mtv.corp.google.com> <54E71694.1080304@redhat.com> <87ioei31uj.fsf@igalia.com> <87d24p19tt.fsf@igalia.com> <54FD7DAA.7010603@redhat.com> <87twxrncld.fsf@igalia.com> <87ioe1dvu2.fsf@igalia.com> <87sid4atms.fsf@igalia.com> Date: Thu, 19 Mar 2015 08:12:00 -0000 In-Reply-To: (Alexander Smundak's message of "Wed, 18 Mar 2015 17:36:16 -0700") Message-ID: <87fv918kyf.fsf@igalia.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: AEC4F262-CE0F-11E4-8CF2-EA766A2A9587-02397024!pb-sasl1.pobox.com X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00576.txt.bz2 On Thu 19 Mar 2015 01:36, Alexander Smundak writes: >> Regarding the result of an unwinder/sniffer, >> If I approach this from the point of view of what's >> easy to explain, it feels like the result of an Unwinder >> is a Frame. > It is logical, but that's not what GDB core expects from the unwinder. > I hesitate to have Python frame unwinder API differ too much from > the underlying GDB core API. I agree with Alexander. If it were really a frame you'd have to expose a frame constructor to Python/GDB, and then would the resulting frame be interned? What would happen if you built a frame but then returned None, or threw an exception? Would there be side effects to the frame cache? And if not, could you hold on to the frame? Would it be equal to frame.newer().older() ? Better to return data instead, which GDB uses to build the actual frame. Andy