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: How to build application to run under the ppc simulator?


> >> I can't stepi from the start, I have to run it.  How(actually,
> >> *where*) can I set a breakpoint at the *first* instruction so I can
> >> *then* stepi? 
> >
> >If your only function is 'foo', why not try "break foo" at 
> the gdb command?
> >
> >I just tried it out (same example as you) and it works. I 
> can stepi in the
> >program and see that it jumps to 0x0 after the 'blr' 
> instruction at the end
> >of 'foo' where it segfaults.
> 
> Yeah, I figured out that I can break at main, but I'm trying to figure
> out why:
> 
> (gdb) tar sim
> Connected to the simulator.
> (gdb) load
> (gdb) p $pc
> $1 = 0
> (gdb) x/i 0x0
> 0x0:	Cannot access memory at address 0x0
> (gdb) 
> 
> So the simulater starts out at 0x0 which doesn't make sense.  Where
> does gdb change its mind and figure out where to start?

After you load the program, the simulator has not been started yet.
('info reg' gives 'No selected frame.')

I think that when you do 'run', the simulator will actually be created at
that moment and will load the $pc with the address which was stated in the
linkerscript with the ENTRY(...) directive. Then it'll jump to the simulated
address.

Anyway, this is just from the top of my hat and I'm not a ppc-sim expert
(a.k.a. coder).

If I'm really struggling with something, I dive into the
gdb-<version>/sim/ppc directory and look at some comments in the code.
 
> BTW, how do I use the 'built-in' serial port in the ppc simulator?

See http://sources.redhat.com/psim/manual/ for more info.


Jan


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