From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19377 invoked by alias); 9 Jun 2005 16:46:40 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 19343 invoked by uid 22791); 9 Jun 2005 16:46:33 -0000 Received: from rproxy.gmail.com (HELO rproxy.gmail.com) (64.233.170.197) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 09 Jun 2005 16:46:33 +0000 Received: by rproxy.gmail.com with SMTP id c51so101346rne for ; Thu, 09 Jun 2005 09:46:32 -0700 (PDT) Received: by 10.11.94.51 with SMTP id r51mr6416cwb; Thu, 09 Jun 2005 09:46:32 -0700 (PDT) Received: by 10.11.99.15 with HTTP; Thu, 9 Jun 2005 09:46:32 -0700 (PDT) Message-ID: <7f45d93905060909461870392b@mail.gmail.com> Date: Thu, 09 Jun 2005 16:46:00 -0000 From: Shaun Jackman Reply-To: Shaun Jackman To: gdb@sources.redhat.com Subject: Re: ARM register pages In-Reply-To: <20050608225835.GA16214@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <7f45d93905060815004a8a9b2d@mail.gmail.com> <20050608225835.GA16214@nevyn.them.org> X-SW-Source: 2005-06/txt/msg00079.txt.bz2 On 6/8/05, Daniel Jacobowitz wrote: > On Wed, Jun 08, 2005 at 03:00:46PM -0700, Shaun Jackman wrote: > > Is there an "info registers" command that displays the paged registers > > for each ARM mode, such as $lr_svc and $lr_abt? GDB doesn't recognize > > these names on the command line for printing/setting. Could this be a > > wishlist item? >=20 > GDB doesn't even know that these registers exist, yet. The normal ARM > remote protocol doesn't transfer them, either. By the "normal ARM remote protocol" do you mean RDP/RDI, or the GDB remote protocol for ARM? Does the latter know about these registers? I'm using a BDI2000 JTAG device which speaks the GDB remote protocol over Ethernet. > > A "data abort" ARM exception sets the $cpsr to 0x17, the program > > counter to 0x10, and the $lr_abt to the previous value of the program > > counter. The backtrace command doesn't work now because (I'm guessing) > > GDB sees $lr_abt and $sp_abt instead of the $lr_usr and $sp_usr that > > contain the useful backtrace information. How can I get a useful > > backtrace after a data abort exception? >=20 > GDB doesn't want to do this by default, usually, because they are > likely to be in different executable images. If they aren't, assuming > that your abort handler saves the banked lr to the stack, you can > write DWARF-2 information to describe where it lives. My data abort handler currently looks like: abt: b abt When everything freezes I interrupt the debugger to look at what's happened. I'd like to get a backtrace of the user mode from this state. Cheers, Shaun