This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: software single step


On Sun, Nov 03, 2002 at 08:54:12AM -0500, Stuart Hughes wrote:
> Hi,
> 
> I'm trying to use gdb/gdbserver to debug a strong-arm target.  I'm
> having problems with single stepping.  If I try to step into the loop
> shown below, it simply runs on printing all 10 loop iterations.
> 
>     for ( i = 0; i < 10 ; i++ ) {
>         printf("loop count = %d\n", i);
>     }
> 
> If I disassemble, the problem seems to be the branch instructions, the
> loop control looks like:
> 
> 0x83c4 <main+36>:       cmp     r3, #9  ; 0x9
> 0x83c8 <main+40>:       ble     0x83d0 <main+48>
> 0x83cc <main+44>:       b       0x83ec <main+76>
> 0x83d0 <main+48>:       ldr     r0, [pc, #60]   ; 0x8414 <main+116>
> 
> To investigate this further, I built a "native" gdb for the strong-arm
> from the same code gdb code base.  This worked correectly, I was able to
> step into and control the flow through the loop.
> 
> It seems as though the problem is that gdbserver is implementing
> software_single_step differently to a "native" gdb.
> 
> Has anyone else seen this problem ? Does anyone know of a work around,
> or a fix ?

gdbserver doesn't implement software single step; the connected GDB
client handles it.  You may want to 'set debug target 1' and 'set debug
remote 1', and watch for differences.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


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