This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, Michael Eager <eager at eagercon dot com>, Vinod Kathail <vinodk at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, Nagaraju Mekala <nmekala at xilinx dot com>
- Date: Tue, 24 Jun 2014 13:26:56 +0000
- Subject: RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 149.199.60.83) smtp dot mailfrom=ajit dot kumar dot agarwal at xilinx dot com;
- References: <fe2ea02f-37b9-4ebe-acd4-6d1192c26358 at BN1AFFO11FD059 dot protection dot gbl> <53A023B1 dot 5000105 at redhat dot com> <859f27cb-8c46-46c1-9625-7287c60f3ae9 at BY2FFO11FD007 dot protection dot gbl> <53A1ABF0 dot 9080004 at redhat dot com> <74281fd5-518a-4d7f-977a-6fa1320f6db9 at BY2FFO11FD016 dot protection dot gbl> <53A1B61F dot 9080803 at redhat dot com> <736c2e0d-6ff1-40c3-8120-dc6f5d91e6b1 at BL2FFO11FD052 dot protection dot gbl> <53A8290A dot 1050701 at redhat dot com> <ffd28f14-2c96-471f-a2c8-4f35b010727d at BN1AFFO11FD006 dot protection dot gbl> <53A94147 dot 4050700 at redhat dot com> <57ebe4b0-83eb-4208-9778-472ecf0048d4 at BY2FFO11FD038 dot protection dot gbl> <53A96993 dot 5040804 at redhat dot com> <109c35c1-e2f6-430f-9235-c6c82a93daf1 at BL2FFO11FD009 dot protection dot gbl> <53A97330 dot 4080708 at redhat dot com>
-----Original Message-----
From: Pedro Alves [mailto:palves@redhat.com]
Sent: Tuesday, June 24, 2014 6:17 PM
To: Ajit Kumar Agarwal
Cc: gdb-patches@sourceware.org; Michael Eager; Vinod Kathail; Vidhumouli Hunsigida; Nagaraju Mekala
Subject: Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
On 06/24/2014 01:31 PM, Ajit Kumar Agarwal wrote:
>>
>> The default is choosen to assume stack protect to make compatible with the handling of stack protect registers in XMD Debugger.
>
>>> But you've already added the G packet size guess for that.
>
> In this case is it correct to say
> If (tdesc == NULL)
> tdesc = tdesc_microblaze;
>
> instead of tdesc_microblaze_with_stack_protect?
Yes.
>
>>> -
>>> + if (tdesc_data != NULL)
>>> + {
>>> + tdesc_use_registers (gdbarch, tdesc, tdesc_data);
>>> + set_gdbarch_register_type (gdbarch,
>>> + microblaze_register_type);
>>
>>>> Hmm, why is this set_gdbarch_register_type call necessary?
>>
>> /* Override tdesc_register_type to adjust the types of VFP
>> registers for NEON. */
>> This is done for arm target to set the different type for VFP
>> registers for Neon with Boolean flags is set before this call for VFP
>> registers. In the microblaze target it's not required for special
>> case of stack protect as
> the microblaze_register_type always return builtin_int for these stack protect registers.
>
> Right.
Actually, not right... This comment doesn't really appear to be correct:
> In the microblaze target it's not required for special case of stack
> protect as the microblaze_register_type always return builtin_int for these stack protect registers.
>>static struct type *
>>microblaze_register_type (struct gdbarch *gdbarch, int regnum) {
>>if (regnum == MICROBLAZE_SP_REGNUM)
>> return builtin_type (gdbarch)->builtin_data_ptr;
>>if (regnum == MICROBLAZE_PC_REGNUM)
>>return builtin_type (gdbarch)->builtin_func_ptr;
>>return builtin_type (gdbarch)->builtin_int; }
What I meant the stack protect register are neither MICROBLAZE_SP_REGNUM nor MICROBLAZE_PC_REGNUM so it always return register_type as builtin_int as derived from the code.
MICROBLAZE_SP_REGNUM and MICROBLAZE_PC_REGNUM clearly aren't builtin_int...
>>Doesn't your patch change the output of "ptype $sp" and "ptype $pc" ?
I will check this and add the changes mentioned below in xml files.
That points at something missing in the target description:
> +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> <feature
> +name="org.gnu.gdb.microblaze.core">
> + <reg name="r1" bitsize="32"/>
...
> + <reg name="rpc" bitsize="32"/>
>>AFAICS, SP is "r1", and PC is "rpc". These should be marked with type="data_ptr" and type="code_ptr" .
Surely I will do this.
>
>>>> As I mentioned before, please don't forget to document the new target features in the manual.
>>
>> Would you mind in explaining which manual need to be changed for the new target.
>
>>> The GDB manual, gdb/doc/gdb.texinfo, describes all the standard XML target features. See the "Standard Target Features" node, and add a new subsection for MicroBlaze.
>
> Thanks !! I will add subsection for Microblaze target.
Thank you.
--
Pedro Alves
- References:
- [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- RE: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.
- Re: [Patch, microblaze]: Fix for remote G Packet message too long error for baremetal.