From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30963 invoked by alias); 10 Dec 2003 17:47:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 30956 invoked from network); 10 Dec 2003 17:47:57 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 10 Dec 2003 17:47:57 -0000 Received: from drow by nevyn.them.org with local (Exim 4.24 #1 (Debian)) id 1AU8RD-0004y5-3Q; Wed, 10 Dec 2003 12:47:51 -0500 Date: Wed, 10 Dec 2003 17:47:00 -0000 From: Daniel Jacobowitz To: Joel Brobecker Cc: gdb-patches@sources.redhat.com Subject: Re: [RFC] Unexpected automatic language switch - get_frame_language() Message-ID: <20031210174750.GA7669@nevyn.them.org> Mail-Followup-To: Joel Brobecker , gdb-patches@sources.redhat.com References: <20031205224807.GE716@gnat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031205224807.GE716@gnat.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-12/txt/msg00294.txt.bz2 Hi Joel, I've got no problems with your final patch, which is why I didn't respond until now, but I'd like to go off on a little tangent... On Fri, Dec 05, 2003 at 02:48:07PM -0800, Joel Brobecker wrote: > Some additional information about "break exception". We have slightly > modified the handling of the "break" command when in ada mode to special > case "break exception". This places a breakpoint on a known GNAT runtime > routine that's called upon exception raise. That's more or less how > exception breakpoints are implemented for Ada. This is really unfortunate. I suppose you've released products that do this? Is there any way you could switch to something like "catch throw" / "catch catch" which GDB implements for C++ for the same functionality - though not very well yet. Adding catch raise as an alias for catch throw if that's more Ada-appropriate would be easy. > For the user's convenience, when the breakpoint is hit, we automatically > go up the call stack until we find a "user frame" (meaning a frame which > has debug info and is not inside the GNAT runtime), and select that > frame. So the user usually sees the location where the exception was > raised, instead of the runtime machinery that triggers and handles the > exception raise. Does the real frame show up in backtraces? What you're describing is what I tried to do for C++, but I couldn't get it to work right. I'd love to unify this code. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer