This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: strange dereferencing behavior in gdb expressions


On Wed, Jan 25, 2006 at 11:42:30AM -0800, PAUL GILLIAM wrote:
> This seems inconsistent: GDB says it can't access memory at an address,
> but when given that address explicitly, it works fine.
>         
>         GDB was configured like this: CC='gcc -m64' ../src/configure
>         (i.e. GDB
>         is a 64-bit application)
>         
>         The target application is a 32-bit 'C' program.
>         
>         (gdb) show version
>         GNU gdb 6.4.50.20060124-cvs
>         ...
>         This GDB was configured as "powerpc64-unknown-linux-gnu".
>         (gdb) p/x *(*(0xffffc4a0)+4)
>         Cannot access memory at address 0xffffc504
>         (gdb) p/x *(int*)((*(int*)0xffffc4a0)+4)
>         $42 = 0xfd7e67c
>         (gdb) p/x *(0xffffc4a0)+4
>         $43 = 0xffffc504
>         (gdb) p/x *($43)
>         Cannot access memory at address 0xffffc504
>         (gdb) p/x *(0xffffc504)
>         $44 = 0xfd7e67c
>         (gdb)
>         
> Anyone what to hazard a guess as to what is going on?

I've had this happen when memory_error truncates the address; might
want to set a breakpoint there, and see if one of them is sign extended
differently than the other due to their different types.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]