2009-11-03 Hui Zhu <teawater@gmail.com>
* record.c (record_resume_error): Deleted.
(record_resume): Call record_message.
(record_wait): Deleted record_resume_error.
Set status when do_record_message need stop the inferior.
---
record.c | 29 ++++++++++-------------------
1 file changed, 10 insertions(+), 19 deletions(-)
--- a/record.c
+++ b/record.c
@@ -954,7 +954,6 @@ record_close (int quitting)
}
static int record_resume_step = 0;
-static int record_resume_error;
/* "to_resume" target method. Resume the process record target. */
@@ -966,15 +965,11 @@ record_resume (struct target_ops *ops, p
if (!RECORD_IS_REPLAY)
{
- if (do_record_message (get_current_regcache (), signal))
- {
- record_resume_error = 0;
- }
- else
- {
- record_resume_error = 1;
- return;
- }
+ struct record_message_args args;
+
+ args.regcache = get_current_regcache ();
+ args.signal = signal;
+ record_message (&args);
record_beneath_to_resume (record_beneath_to_resume_ops, ptid, 1,
signal);
}
@@ -1038,14 +1033,6 @@ record_wait (struct target_ops *ops,
if (!RECORD_IS_REPLAY && ops != &record_core_ops)
{
- 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. */
@@ -1091,7 +1078,11 @@ record_wait (struct target_ops *ops,
Therefore we will not return to gdb.
Record the insn and resume. */
if (!do_record_message (regcache, TARGET_SIGNAL_0))
- break;
+ {
+ status->kind = TARGET_WAITKIND_STOPPED;
+ status->value.sig = TARGET_SIGNAL_0;
+ break;
+ }
record_beneath_to_resume (record_beneath_to_resume_ops,
ptid, 1,