This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] let record_resume fail immediately on error


Ping.

On Tue, Oct 20, 2009 at 11:17, Hui Zhu <teawater@gmail.com> wrote:
> Update follow cvs-head.
>
> Please help me with it.
>
> Thanks,
> Hui
>
> 2009-10-20 ?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
> @@ -679,7 +679,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,
> @@ -689,15 +688,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);
> ? ? }
> @@ -749,14 +744,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. ?*/
> @@ -802,7 +789,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,
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]