[PATCH v3 1/3] rtems-debugger: Fixed 32bit pointers

Chris Johns chrisj at rtems.org
Mon Mar 22 20:54:32 UTC 2021


On 23/3/21 4:58 am, Joel Sherrill wrote:
> On Mon, Mar 22, 2021 at 12:54 PM Joel Sherrill <joel at rtems.org
> <mailto:joel at rtems.org>> wrote:
> 
>     I posted to the gdb mailing list and this is the response:
> 
>     "If the inferior is using 64-bit addresses, then the remote protocol will
>     also use 64-bit addresses. If we have a 32-bit inferior running on
>     aarch64 hardware, we'll have 32-bit addresses over the remote protocol
>     as well.
> 
>     Even when we're using 64-bit addresses, the remote protocol may not pad
>     it with zeroes to make it 64-bit, but it should still be handled as 64-bit."
> 
>     Unfortunately, I think this means that everywhere the debugger code 
>     uses a decode (is there an encode?) uint to decode an address that
>     code needs to change to decode an address (e.g. uintptr) where one is 
>     expected in the protocol. And all target addresses in the debugger need 
>     to change to uintptr_t.
> 
> Luis from gdb just followed up and suggested we always treat it as
> 64-bit and cast to 32-bits. I think uintptr_t is the right answer but I 
> wanted to pass that along.

Thanks and yes this makes sense. Great idea to ask over at gdb.

Chris


More information about the devel mailing list