This is the mail archive of the gdb@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: generic remote support for arm-aout



   Date: Thu, 19 Nov 98 15:51:22 EDT
   From: "steve  longerbeam" <stevel@communicom.net>

   I've added code to gdb 4.17 to support a remote arm-aout
   using gdb's generic remote protocol (not RDI or RDP).
   I've implemented an arm-stub.c with the same level of
   remote command support as the sparc and i386 stubs.

Cool, I'd love to get it added to GDB!

   Also, since the ARM architecture doesn't support
   h/w single stepping (or does it?), I've #define'd
   NO_SINGLE_STEP in tm-arm.h and added the
   following single_step() function to arm-tdep.c:

I'd want to doublecheck that this doesn't interfere with h/w single-step
that's part of adp (rdi) and rdp protocols, but I don't think there's
a problem.

   I've got almost everything working reliably, but there is still
   the following strange behavior:

   - when stepping out of the function foo(), single_step() correctly
     calculates the address of the caller just after the call to
     foo() (i.e. the instr after "bl _foo"), but then another bp is
     set somewhere back inside foo()! (and another continue ('c') command
     is given!) The step should have ended when the program reached the
     bp at the instr following "bl _foo".

Perhaps there is a cache problem?  You're doing a lot of writing into
instruction memory.

   - sometimes a nested stack frame chain is corrupted, and only the last
     two stack frames are reported by a backtrace.

You might want to look at the 1998-10-29 snapshot - there have been a
few patches to arm support since 4.17, although I didn't see any that
were obvious fixes for this...

								Stan