This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: single-stepping remote target fails
Ramana,
The output log follows.
----------------------------------------------------------
(gdb) target remote localhost:1000
Remote debugging using localhost:1000
Sending packet: $Hc-1#09...Ack
Packet received:
Sending packet: $qC#b4...Ack
Packet received:
Sending packet: $qOffsets#4b...Ack
Packet received:
Sending packet: $?#3f...Ack
Packet received: S00
Sending packet: $Hg0#df...Ack
Packet received:
Sending packet: $p40#d4...Ack
Packet received: 0000438C
Sending packet: $p0#a0...Ack
Packet received: 00801D8C
main () at main.c:159
159 while(!PITFlag)
(gdb) s
Sending packet: $p1#a1...Ack
Packet received: 00C70000
Sending packet: $m4180,2#98...Ack
Packet received: 24F0
Sending packet: $m4182,2#9a...Ack
Packet received: 007D
Sending packet: $m4184,2#9c...Ack
Packet received: 6681
Sending packet: $m4186,2#9e...Ack
Packet received: 0510
...(memory reads from 0x4188 through 0x4384)...
Sending packet: $m4386,2#a0...Ack
Packet received: 97A0
Sending packet: $m4388,2#a2...Ack
Packet received: F7F0
Sending packet: $m438a,2#cb...Ack
Packet received: 7F5E
Sending packet: $vCont?#49...Ack
Packet received:
Packet vCont (verbose-resume) is NOT supported
Sending packet: $Hc0#db...Ack
Packet received:
Sending packet: $s#73...Ack
Packet received: S00
Sending packet: $p40#d4...Ack
Packet received: 0000438E
Program received signal 0, Signal 0.
Sending packet: $p0#a0...Ack
Packet received: 00801D8C
0x0000438e in main () at main.c:159
159 while(!PITFlag)
(gdb)
----------------------------------------------------------
GDB never sends a 'Z1' packet to set a hardware breakpoint as part of
the step.
-Chad
Ramana Radhakrishnan wrote:
On Thu, 2005-06-23 at 11:40 -0400, Chad Phillips wrote:
>On Thu, Jun 23, 2005 at 11:18:28AM -0400, Chad Phillips wrote:
>> Problem 1.
>> Single stepping in C source only steps by single machine instruction.
>> I had expected that GDB might try to set breakpoints on the next
>> instruction and then continue, but I see no such requests from GDB.
>> How does GDB cause single steps through C (any high level language)
>> source?
>It does hardware single steps until the source line of the $pc changes.
Interesting. It makes no requests to set breakpoints. If I explicitly
set breakpoints, they work. But when I issue the step command, I get
no breakpoint commands at my proxy application from GDB. Any Ideas?
Can your stub single step by itself without the debugger ? Guess you can
do with the JTAG on. Does your remote stub support the single stepping
packet ?
In any case do a set debug remote 1 just before you single step and
paste the output log over here. That could help answering.
cheers
Ramana
>> Problem 2.
>> When I issue the step command (or si, n, ni) to the target, GDB does
>> a _lot_ of memory reads. It reads from the start of main up to the
>> current PC (in main). What is it doing, and how can I make it stop?
>Preumably it is doing prologue analysis. You need to work out (A) why
>it triggered the prolgoue analyzer and (B) whether you should be using
>unwind information instead of prologue analysis.
Thanks. That make sense.
-Chad