Luis Machado wrote:
On 07/03/2013 12:05 PM, Pedro Alves wrote:
On 07/02/2013 07:50 PM, Luis Machado wrote:
-
-if {[istarget "spu*-*-*"]} then {
- # The internal address format used for the combined Cell/B.E.
- # debugger requires 64-bit.
- set is64bitonly "yes"
-}
-
I'm not sure this equates to sizeof pointer == 64-bit.
This bit may need to be retained. [Adding Ulrich].
Fair enough. Ulrich, let me know if the pointer check in the attached
patch doesn't make sense for Cell BE.
No, the pointer check is not enough. The problem is that on Cell/B.E.,
GDB uses a (purely internal to GDB) address format to encode multiple
address spaces into a synthetic GDB address space. See the long
comment in spu-tdep.h for details.
The "restore" command needs a full internal 64-bit address on Cell/B.E.
to uniquely identify the location where to restore memory. Thus using
a data format that can only remember 32-bit addresses don't work:
http://sourceware.org/ml/gdb-patches/2008-09/msg00139.html
However, just testing the size of a pointer will return 32-bit on SPU,
because that's the ABI-defined pointer size (the 64 bits are purely
GDB internal). So I think Cell/B.E. / SPU will need to remain a
special case here for now.
Bye,
Ulrich