[EXTERNAL] Re: Confused by watchpoints on remote protocol
Denio, Mike
miked@ti.com
Sun Aug 7 07:34:22 GMT 2022
ram_table was just a symbol I created in assembly.
Its really odd, and its not the symbol itself. For example:
(gdb) watch (uint32_t)ram_table
Watchpoint 1: (uint32_t)ram_table
(gdb) watch *(uint32_t *)&ram_table
Hardware watchpoint 2: *(uint32_t *)&ram_table
(gdb) i b
Num Type Disp Enb Address What
1 watchpoint keep y (uint32_t)ram_table
2 hw watchpoint keep y *(uint32_t *)&ram_table
I can see both of these variants "watching" the exact same address.
Maybe you are onto something however. I'll try it with a compiled C program and see if the behavior is any different.
Thanks,
Mike
-----Original Message-----
From: Andreas Schwab <schwab@linux-m68k.org>
Sent: Sunday, August 07, 2022 2:24 AM
To: Denio, Mike via Gdb <gdb@sourceware.org>
Cc: Denio, Mike <miked@ti.com>
Subject: [EXTERNAL] Re: Confused by watchpoints on remote protocol
On Aug 07 2022, Denio, Mike via Gdb wrote:
> The only question I have is that when I type:
> "watch *(uint32_t *)(0x80000018)"
> I get a hardware watch point.
>
> And when I type:
> "watch (uint32_t)ram_table"
> I get a software watch point.
What is ram_table?
> Anyone know why? And how to change it to be always hardware?
Try looking at breakpoint.c:can_use_hardware_watchpoint.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
More information about the Gdb
mailing list