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: Extending GDB: Python: Wrong handling of 64-bit pointers


You are explicitly casting the pointer to a "signed long", hence the
interpreter won't know about this being a pointer anymore.

Bjoern

2012/10/12 chandan r <chandanrmail@gmail.com>:
>
> Andrew Pinski <pinskia@gmail.com> writes:
>
>> On Tue, Oct 9, 2012 at 10:30 AM, chandan r <chandanrmail@gmail.com> wrote:
>>> Hi all,
>>>
>>> As the following CLI interactions show, GDB's python support code seems to be
>>> mishandling 64-bit pointers (GNU/Linux on x86-64):
>>>
>>> NOTE: "p" is a pointer of type "struct task_struct *"
>>>
>>> (gdb) python print gdb.parse_and_eval("p")
>>> 0xffff88001f5f7600
>>> (gdb) python print long(gdb.parse_and_eval("p"))
>>> -131940868983296
>>> (gdb) show version
>>> show version
>>> GNU gdb (GDB) 7.5
>>> Copyright (C) 2012 Free Software Foundation, Inc.
>>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>>> This is free software: you are free to change and redistribute it.
>>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>>> and "show warranty" for details.
>>> This GDB was configured as "x86_64-unknown-linux-gnu".
>>> For bug reporting instructions, please see:
>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>
>>> Is it GDB or am I messing up something here?
>>
>> Nothing looks wrong as -131940868983296 is the same as
>> 0xffff88001f5f7600 in signed integer.
>> (gdb) p/x -131940868983296
>> $1 = 0xffff88001f5f7600
>>
>> Thanks,
>> Andrew Pinski
>>
>>>
>>> --
>>> Chandan
>
> But shouldn't pointer values be read/printed without interpretting the sign
> bit?.
>
> Right now I have to do 'long(str(gdb.parse_and_eval('p')), 16)' to obtain the
> correct value.
>
> --
> chandan


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