This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] [SPARC64] Figure out where a longjmp will land
- From: Joel Brobecker <brobecker at adacore dot com>
- To: "Jose E. Marchesi" <jose dot marchesi at oracle dot com>
- Cc: Tom Tromey <tromey at redhat dot com>, gdb-patches at sourceware dot org
- Date: Thu, 17 Oct 2013 09:57:36 +0400
- Subject: Re: [PATCH] [SPARC64] Figure out where a longjmp will land
- Authentication-results: sourceware.org; auth=none
- References: <87y563k71b dot fsf at oracle dot com> <87d2nffr53 dot fsf at fleche dot redhat dot com> <87txgrjupm dot fsf at oracle dot com>
> 2013-10-08 Jose E. Marchesi <jose.marchesi@oracle.com>
>
> * sparc-tdep.c (sparc_is_annulled_branch_insn): New function.
> * sparc-tdep.h: And its prototype.
>
> * sparc64-linux-tdep.c (sparc64_linux_get_longjmp_target): New
> function.
> (sparc64_linux_init_abi): Register the get_longjmp_target hook.
This looks reasonable to me, with a minor correction requested below.
But Sparc patches normally get reviewed by MarkK, so can you give it
another week before checking the final version in? (remember that
when you check something in that is different from the patch already
posted, an updated patch should be sent to the list, for the record).
I assume that this was validated against our testsuite, and that
no new regressions were detected?
Thank you.
> +/* Figure out where a longjmp will land. Get the args out of the
> + output registers. We expect the first arg to be a pointer to the
> + jmp_buf structure from which we extract the address that we will
> + land at. This address is copied into PC. This routine returns
> + non-zero on success. */
> +
> +static int
> +sparc64_linux_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
This function is expected to implement a gdbarch callback, so you do
not need to repeat the spec, which is expected to already be documented
in gdbarch.h. Instead, use:
/* Implement the "get_longjmp_target" gdbarch method. */
This prevents maintenance issues if we start modifying the "method"'s
specifications. If there is anything from the documentation that
you think is worth preserving locally, please do.
Now, I see that "method" is actually not documented, yet. I will try
fixing that as best as I can.
--
Joel