From: Andrew Cagney <ac131313@ges.redhat.com>
To: Kevin Buettner <kevinb@redhat.com>, Grace Sainsbury <graces@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [rfa] insert_hw_breakpoint
Date: Tue, 13 Aug 2002 08:59:00 -0000 [thread overview]
Message-ID: <3D592CF2.5040908@ges.redhat.com> (raw)
In-Reply-To: <1020812202745.ZM918@localhost.localdomain>
> On Aug 12, 4:04pm, Grace Sainsbury wrote:
>
>
>> - len = strlen (shadow);
>> - len = len ? len : 1;
>> + BREAKPOINT_FROM_PC (&addr, &len);
>> +
>> if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
>> error ("Can't set hardware breakpoint without the '%s' (%s) packet\n",
>> remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
>> @@ -5027,7 +5027,8 @@
>> char *buf = alloca (rs->remote_packet_size);
>> char *p = buf;
>>
>> - len = sizeof (shadow);
>> + BREAKPOINT_FROM_PC (&addr, &len);
>> +
>> if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
>> error ("Can't clear hardware breakpoint without the '%s' (%s) packet\n",
>> remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
Grace,
Assuming it still works with the (RedBoot?) stub you're using then yes
ok. (The stub must have been ignoring the length as that could be garbage).
> Do stubs actually care about this length field for the packets under
> consideration?
The length indicates the number of bytes to consider -- in theory this
allows GDB to set h/w breakpoint across an address range. I suspect,
though, that all existing stubs ignore the length since GDB hasn't been
doing anything sensible with it.
> I agree that the use of strlen() and sizeof() seem dubious if not
> outright wrong, but, unfortunately, not all architectures can define
> a sensible BREAKPOINT_FROM_PC. (*) I would like to see gdb relying less
> on BREAKPOINT_FROM_PC, not more.
The address should definitly be run through BREAKPOINT_FROM_PC(). On
Arm, MIPS16, sh5, ...it will strip out any least significant mode bit so
that the stub is handed a proper address.
As for the length, the choices would be 1, instruction size or
breakpoint size (returned by BREAKPOINT_FROM_PC). Given breakpoint size
is the size of the smallest instruction, it looks to be a good
compromize. On the i386 it is one anyway, on Arm it would be 2/4
depending on/indicating the mode of the cpu.
> (*) E.g, IA-64. For IA-64, I did define a BREAKPOINT_FROM_PC, but I
> would have preferred not to. The values returned by
> ia64_breakpoint_from_pc() are fairly arbitrary and are of absolutely
> no use for saving/restoring actual breakpoints.
I think that is a separate problem.
enjoy,
Andrew
prev parent reply other threads:[~2002-08-13 15:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-12 13:04 Grace Sainsbury
2002-08-12 13:27 ` Kevin Buettner
2002-08-13 8:59 ` Andrew Cagney [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D592CF2.5040908@ges.redhat.com \
--to=ac131313@ges.redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=graces@redhat.com \
--cc=kevinb@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox