Re: [RFC 2/3] Record function descriptor address instead of function address in value

Simon Marchi
2016-10-14T17:35:20Z

On 2016-10-14 06:53, Yao Qi wrote:
> In this patch, I add a new gdbarch method convert_from_func_addr, which
> converts function address back to function descriptor address or
> function pointer address. It is the reversed operation of
> convert_from_func_ptr_addr. We convert function address to function
> descriptor address when,

I think these could be better named, byt saying what it converts from
_and_ what it converts to. With convert_from_func_addr, we know it
takes as input a function address, but we don't know what it converts it
to. What about something like convert_func_address_to_descriptor (or
convert_func_addr_to_desc if you prefer shorter names)?

I think that it would also be clearer if we always used the same
terminology (address and descriptor seem good). It is not very
intuitive what is the difference between convert_from_func_ptr_addr and
convert_from_func_addr. "function pointer address" and "function
address" sound too close to each other, so it's easy to confuse them...

> 3. User visible changes
>
> This patch brings several user visible changes, which look more
> accurate, shown by this table below,
>
> COMMAND BEFORE AFTER
> p main main function address main function
> descriptor
> address
> disass main disassembly function main not changed
> disass main+4,+4 disassembly 4 bytes from disassembly 4 bytes
> from
> function main address + 4 main's function
> descriptor + 4
> x/i main show one instruction on show one instruction on
> main's
> function main address function descriptor
>
> Although the latter looks inconvenient, that is consistent to the
> meaning on C language level. Due to these changes, test cases are
> adjusted accordingly.

Could you provide example of the actual output of those commands, before
and after? It is not clear to me what the difference will be.

Thanks,

Simon