target, record: add PTID argument to to_record_is_replaying

The to_record_is_replaying target method is used to query record targets if
they are replaying.  This is currently interpreted as "is any thread being
replayed".

Add a PTID argument and change the interpretation to "is any thread matching
PTID being replayed".

Change all users to pass minus_one_ptid to preserve the old meaning.

The record full target does not really support multi-threading and ignores
the PTID argument.

gdb/
	* record-btrace.c (record_btrace_is_replaying): Add ptid argument.
	Update users to pass minus_one_ptid.
	* record-full.c (record_full_is_replaying): Add ptid argument (ignored).
	* record.c (cmd_record_delete): Pass inferior_ptid to
	target_record_is_replaying.
	* target-delegates.c: Regenerated.
	* target.c (target_record_is_replaying): Add ptid argument.
	* target.h (struct target_ops) <to_record_is_replaying>: Add ptid
	argument.
	(target_record_is_replaying): Add ptid argument.
This commit is contained in:
Markus Metzger
2015-09-08 08:26:16 +02:00
parent cbb55fa7a1
commit a52eab4808
7 changed files with 46 additions and 26 deletions

View File

@@ -3602,26 +3602,28 @@ debug_delete_record (struct target_ops *self)
}
static int
delegate_record_is_replaying (struct target_ops *self)
delegate_record_is_replaying (struct target_ops *self, ptid_t arg1)
{
self = self->beneath;
return self->to_record_is_replaying (self);
return self->to_record_is_replaying (self, arg1);
}
static int
tdefault_record_is_replaying (struct target_ops *self)
tdefault_record_is_replaying (struct target_ops *self, ptid_t arg1)
{
return 0;
}
static int
debug_record_is_replaying (struct target_ops *self)
debug_record_is_replaying (struct target_ops *self, ptid_t arg1)
{
int result;
fprintf_unfiltered (gdb_stdlog, "-> %s->to_record_is_replaying (...)\n", debug_target.to_shortname);
result = debug_target.to_record_is_replaying (&debug_target);
result = debug_target.to_record_is_replaying (&debug_target, arg1);
fprintf_unfiltered (gdb_stdlog, "<- %s->to_record_is_replaying (", debug_target.to_shortname);
target_debug_print_struct_target_ops_p (&debug_target);
fputs_unfiltered (", ", gdb_stdlog);
target_debug_print_ptid_t (arg1);
fputs_unfiltered (") = ", gdb_stdlog);
target_debug_print_int (result);
fputs_unfiltered ("\n", gdb_stdlog);