Thanks, Omair. I did check xml files in Linaro's source 
(gdb-linaro-7.6.1-2013.10). In the target.xml file our gdb server sends back to 
gdb client, we only include regsiters X0~X30, sp, pc and cpsr. It's close to 
gdb-linaro-7.6.1-2013.10\gdb\features\aarch64-core.xml, which is included in 
aarch64-without-fpu.xml. I don't know how the server can notify the client that 
it does not have FPU supported. So I assume if the target.xml does not claim 
feature 'org.gnu.gdb.aarch64.fpu’, it would be deemed as no FPU supporting.
For now, I added some code in our code to return the value of fpsr and fpcr to 
make the gdb client happy.

Regards,
Strong

-----Original Message-----
From: Omair Javaid [mailto:omair.jav...@linaro.org] 
Sent: Monday, November 10, 2014 3:30 AM
To: Qu, Strong
Cc: linaro-toolchain@lists.linaro.org
Subject: Re: [Question] Should gdb client query FP registers even if gdb server 
does not report having org.gnu.gdb.aarch64.fpu feature?

On 7 November 2014 02:27, Qu, Strong <stro...@qti.qualcomm.com> wrote:
> Hello,
>
>
>
> We have implemented gdb server in one of our project and we are using 
> Linaro aarch64-none-elf-gdb.exe as gdb client. Our gdb server will 
> response to packet 'qXfer:features:read:target.xml:0,fff' with a xml 
> file which only claims feature ‘org.gnu.gdb.aarch64.core’. However, when I 
> issue ‘info reg’
> command with the gdb client, it actually sends out a packet ‘$p42#d6’, 
> which is trying to read fpsr if I understand correctly. Is this an 
> expected behavior or not? I just want to figure out whether our gdb 
> server send some bad info to the gdb client and made the client thinks 
> FP registers are valid. I hope I made my question clear and I’m really 
> appreciate if anybody can help us on this again.
>
>
>
> Thanks,
>
>
>
> Strong
>
>
> _______________________________________________
> linaro-toolchain mailing list
> linaro-toolchain@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-toolchain
>

Hi Strong,

GDB server will receive a register read request based on registers information 
given in xml target description on the client side.

You can find these xml in gdb sources under: binutils-gdb/gdb/features

If GDB is requesting a read for certain register that you expect it should not 
then you have to verify if its there in the xml description or not.

There is a chance you might have developed your gdbserver implementation with 
some version that doesnt match with current version of linaro-gdb.

I hope this helps. Let me know if you need to know anything further.

Thanks!

--
Omair
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to