Re: How are watchpoints handled? (remote serial)

Juha Aaltonen <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAHR0xd6ewc1mQPa=si85=acf3Miuw5Yg6H3tPgKRXNb=1xSZDQ@mail.gmail.com>
Maybe that's a bug in gdb-multiarch 7.7.1?
Remote-debugging an ARM (watch g_testloc):

(This is as it should be.)
gdbarch_dump: have_nonsteppable_watchpoint = 1


w \x00]0x00008180 in __delay_169 () at ../blinky.c:211
211                g_testloc = 1;
(gdb) cont
Continuing.
Sending packet:
$m81b0,4#c8...[\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][0][0][0][0][0][0][0][0][#][8][0]Packet received: 00000000
[
w \x00]Sending packet:
$Z2,81b0,4#13...[\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][O][K][#][9][a]Packet received: OK
[
w \x00]Sending packet: $c#63...[\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][T][0][5][#][b][9]Packet received: T05
[
w \x00]Sending packet: $g#67...[\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][8][8][1][3][0][0][0][0][2][c][0][1][0][0][0][0][8][8][1][3][0][0][0][0][0][1][0][0][0][0][0][0][0][a][0][0][0][0][0][0][0][3][0][0][0][0][0][0][e][8][0][3][0][0][0][0][b][0][8][1][0][0][0][0][2][c][0][a][0][2][1][f][2][3][0][0][0][0][0][0][2][8][0][a][0][2][1][f][2][4][0][a][0][2][1][f][4][3][0][c][0][1][1][f][a][0][9][7][0][0][0][0][8][0][8][1][0][0][0][0][8][0][8][1][0][0][0][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][0][9][0][0][0][0][9][0][9][7][0][1][0][0][6][0][#][2][4]Packet
received: 881300002c01000088130000010000000a00000003000000e8030000b08100002c0a021f23000000280a021f240a021f430c011fa0970000808100008081000009000090090000900900009009000090090000900900009009000090090000900900009097010060
[
w \x00]Sending packet:
$m8180,4#9e...[\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][0][0][3][0][8][7][e][5][#][c][c]Packet received: 003087e5
[
... (lots of memory reads) ...
[
w \x00]Sending packet:
$m8180,4#9e...[\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][0][0][3][0][8][7][e][5][#][c][c]Packet received: 003087e5
[
w \x00]
Program received signal SIGTRAP, Trace/breakpoint trap.
Sending packet:
$z2,81b0,4#33...[\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][\x00][
r +]Ack
[$][O][K][#][9][a]Packet received: OK
[
w \x00]0x00008180 in __delay_169 () at ../blinky.c:211
211                g_testloc = 1;
(gdb)


No stepping over watchpoint.


On Tue, Nov 10, 2015 at 12:57 AM, Juha Aaltonen <[email protected]> wrote:
> How should the watchpoints be handled by remote stub/server?
> It seems that when 'cont'-command is given, gdb re-installs watchpoint
> and sends 'c'-packet.
>
> If the return address is the trap address, the watchpoint trigs again,
> but if the address is advanced,
> the access is not done at all, because the watchpoint makes exception
> before the access is made.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.