This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA] let record_resume fail immediately on error
- From: Michael Snyder <msnyder at vmware dot com>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, Hui Zhu <teawater at gmail dot com>
- Date: Mon, 07 Sep 2009 21:01:23 -0700
- Subject: [RFA] let record_resume fail immediately on error
Might as well let record_resume call internal_error if it fails,
rather than setting a flag and trying to report on it later.
The flag doesn't really work anyway -- looks like you wanted
record_wait to return SIGABRT (not really the right thing either),
but it doesn't. Instead we somehow return "no more reverse execution
history".
What do you think, Hui?
2009-09-07 Michael Snyder <msnyder@vmware.com>
* record.c (record_resume): Call internal_error immediately
instead of later.
Index: record.c
===================================================================
RCS file: /cvs/src/src/gdb/record.c,v
retrieving revision 1.17
diff -u -p -r1.17 record.c
--- record.c 8 Sep 2009 00:50:42 -0000 1.17
+++ record.c 8 Sep 2009 03:56:09 -0000
@@ -516,7 +516,6 @@ record_close (int quitting)
}
static int record_resume_step = 0;
-static int record_resume_error;
static void
record_resume (struct target_ops *ops, ptid_t ptid, int step,
@@ -527,14 +526,9 @@ record_resume (struct target_ops *ops, p
if (!RECORD_IS_REPLAY)
{
if (do_record_message (get_current_regcache ()))
- {
- record_resume_error = 0;
- }
- else
- {
- record_resume_error = 1;
- return;
- }
+ internal_error (__FILE__, __LINE__,
+ _("record_resume: do_record_message failed."));
+
record_beneath_to_resume (record_beneath_to_resume_ops, ptid, 1,
siggnal);
}
@@ -586,14 +580,6 @@ record_wait (struct target_ops *ops,
if (!RECORD_IS_REPLAY)
{
- if (record_resume_error)
- {
- /* If record_resume get error, return directly. */
- status->kind = TARGET_WAITKIND_STOPPED;
- status->value.sig = TARGET_SIGNAL_ABRT;
- return inferior_ptid;
- }
-
if (record_resume_step)
{
/* This is a single step. */