From: Pedro Alves <pedro@codesourcery.com>
To: gdb-patches@sourceware.org
Cc: Michael Snyder <msnyder@vmware.com>, teawater <teawater@gmail.com>
Subject: Re: [reverse/record] adjust_pc_after_break in reverse execution mode?
Date: Mon, 20 Oct 2008 17:44:00 -0000 [thread overview]
Message-ID: <200810201844.30954.pedro@codesourcery.com> (raw)
In-Reply-To: <48FBD342.5070905@vmware.com>
On Monday 20 October 2008 01:39:30, Michael Snyder wrote:
> See, the problem is that "adjust_pc_after_break" is assuming
> memory-breakpoint semantics, but Process Record/Replay actually
> implements hardware-breakpoint semantics. It watches the
> instruction-address "bus" and stops when the PC matches the
> address of a breakpoint.
>
> I suspect this is probably a problem with other record/replay
> back-ends too, but I haven't confirmed it yet.
>
But that is wrong. If GDB is telling the target to insert
software breakpoints, and the target is accepting them, then
GDB assumes software breakpoints semantics for that particular
architecture. That's the `target_insert_breakpoint' semantics
(native/remote, doesn't matter).
For remote, if the stub is accepting Z0, those breakpoint should behave
as memory breakpoints. See from the manual:
"
`Z0,addr,length'
Insert (`Z0') or remove (`z0') a memory breakpoint at address addr of size length.
`Z1,addr,length'
Insert (`Z1') or remove (`z1') a hardware breakpoint at address addr of size length.
A hardware breakpoint is implemented using a mechanism that is not dependant on being able to modify the target's memory.
"
Notice that adjust_pc_after_break does this:
/* Check whether there actually is a *software breakpoint* inserted
at that location. */
if (software_breakpoint_inserted_here_p (breakpoint_pc))
^^^^^^^^
{
If the stub on a decr_pc_after_break arch lies to GDB, then, PC
adjustment will be broken, even in normal forward debugging.
I believe the correct thing for the target to do is to
report `PC + decr_pc_after_breakpoint' on forward (replay or normal forward)
breakpoint hits, if it is telling GDB that it succesfully
inserted a software breakpoint.
--
Pedro Alves
next prev parent reply other threads:[~2008-10-20 17:44 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-18 1:11 Pedro Alves
2008-10-18 1:26 ` Michael Snyder
2008-10-18 3:09 ` Pedro Alves
2008-10-18 3:18 ` teawater
2008-10-18 8:42 ` Andreas Schwab
2008-10-19 14:28 ` teawater
2008-10-19 20:10 ` Daniel Jacobowitz
2008-10-18 3:07 ` teawater
2008-10-18 3:26 ` Pedro Alves
2008-10-19 22:44 ` Michael Snyder
2008-10-20 0:10 ` Pedro Alves
2008-10-20 0:44 ` Michael Snyder
2008-10-20 1:46 ` Daniel Jacobowitz
2008-10-20 12:10 ` Pedro Alves
2008-10-20 15:50 ` teawater
2008-10-20 17:44 ` Pedro Alves [this message]
2008-10-20 17:51 ` Michael Snyder
2008-10-20 23:36 ` teawater
2008-10-21 0:21 ` Pedro Alves
2008-10-21 0:56 ` teawater
2008-10-21 3:13 ` teawater
2008-10-21 6:52 ` teawater
2008-10-21 6:52 ` teawater
2008-10-23 23:28 ` Michael Snyder
2008-10-21 7:04 ` teawater
2008-10-21 18:36 ` Michael Snyder
2008-10-22 0:39 ` teawater
2008-10-23 23:32 ` Michael Snyder
2008-10-23 23:46 ` Pedro Alves
2008-10-23 23:55 ` Pedro Alves
2008-10-24 0:45 ` Michael Snyder
2008-10-24 0:43 ` Michael Snyder
2008-10-24 1:51 ` Pedro Alves
2008-10-24 8:11 ` teawater
2008-10-24 9:58 ` teawater
2008-10-25 7:08 ` teawater
2008-10-28 3:21 ` teawater
2008-10-29 1:24 ` Michael Snyder
2008-10-30 3:01 ` teawater
2008-10-30 12:21 ` Pedro Alves
2008-10-30 22:06 ` Michael Snyder
2008-10-30 21:44 ` Pedro Alves
2008-10-30 21:29 ` Michael Snyder
2008-10-31 13:04 ` teawater
2008-10-31 0:25 ` teawater
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=200810201844.30954.pedro@codesourcery.com \
--to=pedro@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=msnyder@vmware.com \
--cc=teawater@gmail.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