Re: [RFC PATCH 0/3] Pretty-printing for errno

Pedro Alves
2017-07-04T15:54:40Z

On 07/01/2017 03:35 PM, Siddhesh Poyarekar wrote:
> On Friday 30 June 2017 10:57 PM, Zack Weinberg wrote:

>> Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...Reading symbols
>> from /usr/lib/debug/.build-id/cc/80584889db7a969292959a46c718a2b1500702.debug...done.
>> done.
>> (gdb) ptype __errno_location
>> type = int ()
>> (gdb) p __errno_location
>> $1 = {<text variable, no debug info>} 0x20590 <__GI___errno_location>
>>
>> ... a suspicion occurs...
>>
>> (gdb) ptype __GI___errno_location
>> type = int *(void)
>> (gdb) p __GI___errno_location
>> $2 = {int *(void)} 0x20590 <__GI___errno_location>
>>
>> ... so I guess this is a problem with the __GI_ indirection, which
>> *may* be a thing we can resolve on our end. I don't fully understand
>> that stuff.
>
> The __GI_* alias is an internal alias of __errno_location and I've seen
> this before with other symbols, where a function address resolves to the
> internal alias instead of the public one in gdb as well as other places
> like objdump. It might make sense to turn this around, but I suspect
> there may be a reason for it that I am unaware of.
>

I look at this a bit today, and sent a gdb patch to handle this
better now:
https://sourceware.org/ml/gdb-patches/2017-07/msg00018.html

I pushed it to the same branch as the other one: users/palves/whatis.

Thanks,
Pedro Alves