This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v3] Enable tracing of pseudo-registers on ARM
- From: Pedro Alves <palves at redhat dot com>
- To: Antoine Tremblay <antoine dot tremblay at ericsson dot com>, gdb-patches at sourceware dot org, qiyaoltc at gmail dot com
- Date: Fri, 19 Feb 2016 20:22:03 +0000
- Subject: Re: [PATCH v3] Enable tracing of pseudo-registers on ARM
- Authentication-results: sourceware.org; auth=none
- References: <wwoklh6gpsne dot fsf at ericsson dot com> <1455910116-13237-1-git-send-email-antoine dot tremblay at ericsson dot com>
On 02/19/2016 07:28 PM, Antoine Tremblay wrote:
> +/* Map the pseudo register number REG to the proper register number. */
> +
> +static int
> +arm_pseudo_register_to_register (struct gdbarch *gdbarch, int reg)
> +{
> + /* Get the remote/tdesc register number. */
> + double_regnum = gdbarch_remote_register_number (gdbarch, double_regnum);
Hmm, I don't think it should be the responsibility of this function to
map gdb to remote numbers though. Here I think we should just map
gdb pseudo to gdb raw.
> +
> + return double_regnum;
> +}
> +
> +/* Implementation of the ax_pseudo_register_collect gdbarch function. */
> +
> +static int
> +arm_ax_pseudo_register_collect (struct gdbarch *gdbarch,
> + struct agent_expr *ax, int reg)
> +{
> + int rawnum = arm_pseudo_register_to_register (gdbarch, reg);
> +
> + /* Error. */
> + if (rawnum < 0)
> + return 1;
> +
> + ax_reg_mask (ax, rawnum);
Hmm, seems to me that gdb raw -> target raw mapping should be
either here, or perhaps even in ax_reg / ax_reg_mask?
Consider the case of an expression requiring the collection of
a _raw_ register, thus not even reaching here. Looking at
ax-gdb.c/ax-general.c I don't see where is anything mapping gdb raw numbers
to remote/tdesc numbers? So how does _that_ work? Are the register masks that gdb
is computing actually wrong for the target, and things just happen
to work because gdbserver ignores them and always collects all registers?
Thanks,
Pedro Alves