From: Markus Metzger <markus.t.metzger@intel.com>
To: palves@redhat.com
Cc: gdb-patches@sourceware.org
Subject: [PATCH v3 15/19] btrace: allow full memory and register access for non-replaying threads
Date: Thu, 17 Sep 2015 14:10:00 -0000 [thread overview]
Message-ID: <1442498990-1222-16-git-send-email-markus.t.metzger@intel.com> (raw)
In-Reply-To: <1442498990-1222-1-git-send-email-markus.t.metzger@intel.com>
The record btrace target does not allow accessing memory and storing registers
while replaying. For multi-threaded applications, this prevents those
accesses also for threads that are at the end of their execution history as
long as at least one thread is replaying.
Change this to only check if the selected thread is replaying. This allows
threads that are at the end of their execution history to read and write
memory and to store registers.
Also change the error message to reflect this change.
2015-09-17 Markus Metzger <markus.t.metzger@intel.com>
gdb/
* record-btrace.c (record_btrace_xfer_partial)
(record_btrace_store_registers, record_btrace_prepare_to_store):
Call record_btrace_is_replaying with inferior_ptid instead of
minus_one_ptid.
(record_btrace_store_registers): Change error message.
---
gdb/record-btrace.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 481d22d..b4e4560 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1160,7 +1160,7 @@ record_btrace_xfer_partial (struct target_ops *ops, enum target_object object,
/* Filter out requests that don't make sense during replay. */
if (replay_memory_access == replay_memory_access_read_only
&& !record_btrace_generating_corefile
- && record_btrace_is_replaying (ops, minus_one_ptid))
+ && record_btrace_is_replaying (ops, inferior_ptid))
{
switch (object)
{
@@ -1314,8 +1314,8 @@ record_btrace_store_registers (struct target_ops *ops,
struct target_ops *t;
if (!record_btrace_generating_corefile
- && record_btrace_is_replaying (ops, minus_one_ptid))
- error (_("This record target does not allow writing registers."));
+ && record_btrace_is_replaying (ops, inferior_ptid))
+ error (_("Cannot write registers while replaying."));
gdb_assert (may_write_registers != 0);
@@ -1332,7 +1332,7 @@ record_btrace_prepare_to_store (struct target_ops *ops,
struct target_ops *t;
if (!record_btrace_generating_corefile
- && record_btrace_is_replaying (ops, minus_one_ptid))
+ && record_btrace_is_replaying (ops, inferior_ptid))
return;
t = ops->beneath;
--
1.8.3.1
next prev parent reply other threads:[~2015-09-17 14:10 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-17 14:10 [PATCH v3 00/19] record btrace: non-stop, scheduler-locking, and ASNS Markus Metzger
2015-09-17 14:09 ` [PATCH v3 01/19] btrace: fix non-stop check in to_wait Markus Metzger
2015-09-17 14:10 ` [PATCH v3 09/19] btrace: resume all requested threads Markus Metzger
2015-09-17 14:10 ` [PATCH v3 14/19] target, record: add PTID argument to to_record_is_replaying Markus Metzger
2015-09-17 14:10 ` [PATCH v3 06/19] btrace: move breakpoint checking into stepping functions Markus Metzger
2015-09-17 14:10 ` [PATCH v3 02/19] btrace: support to_stop Markus Metzger
2015-09-17 14:10 ` [PATCH v3 12/19] infrun: switch to NO_HISTORY thread Markus Metzger
2015-09-17 14:10 ` [PATCH v3 03/19] btrace: improve stepping debugging Markus Metzger
2015-09-17 14:10 ` [PATCH v3 13/19] btrace: non-stop Markus Metzger
2015-09-17 14:10 ` [PATCH v3 17/19] target: add to_record_will_replay target method Markus Metzger
2015-09-18 11:39 ` Pedro Alves
2015-09-17 14:10 ` [PATCH v3 07/19] btrace: add missing NO_HISTORY Markus Metzger
2015-09-17 14:10 ` [PATCH v3 11/19] btrace: async Markus Metzger
2015-09-17 14:10 ` [PATCH v3 08/19] btrace: lock-step Markus Metzger
2015-09-17 14:10 ` [PATCH v3 19/19] btrace: honour scheduler-locking for all-stop targets Markus Metzger
2015-09-18 11:39 ` Pedro Alves
2015-09-17 14:10 ` [PATCH v3 10/19] btrace: temporarily set inferior_ptid in record_btrace_start_replaying Markus Metzger
2015-09-17 14:10 ` [PATCH v3 18/19] infrun: scheduler-locking replay Markus Metzger
2015-09-18 11:39 ` Pedro Alves
2015-09-17 14:10 ` [PATCH v3 04/19] btrace: extract the breakpoint check from record_btrace_step_thread Markus Metzger
2015-09-17 14:10 ` [PATCH v3 05/19] btrace: split record_btrace_step_thread Markus Metzger
2015-09-17 14:10 ` Markus Metzger [this message]
2015-09-17 14:10 ` [PATCH v3 16/19] target: add to_record_stop_replaying target method Markus Metzger
2015-09-18 11:41 ` [PATCH v3 00/19] record btrace: non-stop, scheduler-locking, and ASNS Pedro Alves
2015-09-18 11:52 ` Metzger, Markus T
2015-09-18 11:56 ` Jan Kratochvil
2015-09-18 12:14 ` Eli Zaretskii
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=1442498990-1222-16-git-send-email-markus.t.metzger@intel.com \
--to=markus.t.metzger@intel.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@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