From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22743 invoked by alias); 6 May 2005 04:08:01 -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 22724 invoked from network); 6 May 2005 04:07:56 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 6 May 2005 04:07:56 -0000 Received: from drow by nevyn.them.org with local (Exim 4.50 #1 (Debian)) id 1DTu83-0001zD-Mz; Fri, 06 May 2005 00:07:55 -0400 Date: Fri, 06 May 2005 04:08:00 -0000 From: Daniel Jacobowitz To: Shaun Jackman Cc: gdb@sources.redhat.com Subject: Re: Disassembling ARM and Thumb code Message-ID: <20050506040755.GA7038@nevyn.them.org> Mail-Followup-To: Shaun Jackman , gdb@sources.redhat.com References: <7f45d93905050517053a33f3c9@mail.gmail.com> <20050506015559.GA3922@nevyn.them.org> <7f45d93905050520353a1dc5ed@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7f45d93905050520353a1dc5ed@mail.gmail.com> User-Agent: Mutt/1.5.8i X-SW-Source: 2005-05/txt/msg00069.txt.bz2 On Thu, May 05, 2005 at 08:35:02PM -0700, Shaun Jackman wrote: > On 5/5/05, Daniel Jacobowitz wrote: > > On Thu, May 05, 2005 at 05:05:56PM -0700, Shaun Jackman wrote: > > > My ARM7TDMI processor is currently in Thumb mode, but the x/i command > > > dissects the instruction as an ARM instruction. The symbol > > > rdp_getargvsp is a Thumb symbol added using add-symbol-file [elf > > > binary here]. What is the command to disassemble a given memory > > > location as a Thumb instruction? > > > > How is it marked as Thumb in the binary? > > It's marked with a $t symbol at the same address. > > $ nm busybox | grep 020004dd > 020004dd t $t > 020004dd t rdp_getargvsp > > I haven't read this in documentation; only noticed it from empirical > evidence. For example, here's a symbol compiled for ARM marked with a > $a symbol at the same address. > > $ nm hello | grep 000081f8 > 000081f8 t $a > 000081f8 T main GDB doesn't understand ARM mapping symbols. It could, with some work, but it doesn't yet. However it should understand the odd symbol address. If that's not working, there's a bug somewhere. > Hehe. I agree, that's probably not the best plan. However, for the > unique case of 'x/i $pc' it does make a certain amount of sense to use > the CPSR as a hint. I'm not sure if it's worth the special case > though. An explicit switch to the x/i and disas commands to specify > ARM or Thumb dissection is very much a good idea though. Yes, probably; if you have a good idea for the syntax to use, then maybe we can add it. I don't much like the idea of target-specific modifiers. -- Daniel Jacobowitz CodeSourcery, LLC