[PATCH 2/9] [libbacktrace] Add altlink field to struct dwarf_data

Tom de Vries tdevries@suse.de
Wed Jan 16 22:20:00 GMT 2019


On 16-01-19 17:34, Tom de Vries wrote:
> On 16-01-19 17:33, Tom de Vries wrote:
>> On 16-01-19 02:02, Ian Lance Taylor wrote:
>>> On Tue, Dec 11, 2018 at 2:14 AM Tom de Vries <tdevries@suse.de> wrote:
>>>>
>>>> Add an altlink field to struct dwarf_data, and initialize it with the pointer
>>>> to the struct dwarf_data for the .gnu_debugaltlink.
>>>>
>>>> 2018-11-11  Tom de Vries  <tdevries@suse.de>
>>>>
>>>>         * dwarf.c (struct dwarf_data): Add altlink field.
>>>>         (backtrace_dwarf_add): Add and handle fileline_entry and
>>>>         fileline_altlink parameters.
>>>>         * elf.c (elf_add): Add and handle fileline_entry parameter.  Add args to
>>>>         backtrace_dwarf_add call.
>>>>         (phdr_callback, backtrace_initialize): Add arguments to elf_add calls.
>>>>         * internal.h (backtrace_dwarf_add): Add fileline_entry and
>>>>         fileline_altlink parameters.
>>>>         * pecoff.c (coff_add): Add args to backtrace_dwarf_add call.
>>>>         * xcoff.c (xcoff_add): Same.
>>>
>>>
>>>> @@ -2968,7 +2970,7 @@ build_dwarf_data (struct backtrace_state *state,
>>>>                   size_t dwarf_str_size,
>>>>                   int is_bigendian,
>>>>                   backtrace_error_callback error_callback,
>>>> -                 void *data)
>>>> +                 void *data, struct dwarf_data *altlink)
>>>>  {
>>>
>>> error_callback and data should remain the last two parameters, as they
>>> are for many of the functions in this file.
>>>
>>>
>>
>> Done.
>>
>>>>   @@ -3031,7 +3034,8 @@ backtrace_dwarf_add (struct backtrace_state *state,
>>>>                      size_t dwarf_str_size,
>>>>                      int is_bigendian,
>>>>                      backtrace_error_callback error_callback,
>>>> -                    void *data, fileline *fileline_fn)
>>>> +                    void *data, fileline *fileline_fn, void **fileline_entry,
>>>> +                    void *fileline_altlink)
>>>
>>> The new fileline_altlink parameter should come before error_callback,
>>> as it is not error_callback/data and is not a result parameter.
>>>
>>
>> Done.
>>
>>> What is fileline_entry for? 
>>
>> There are two bits to this patch:
>> - add fileline_entry parameter to elf_add.  This allows the callers of
>>   elf_add access to the struct dwarf_data pointer corresponding to the
>>   added elf.
>> - add an altlink field to struct dwarf_data, and initialize it with the
>>   pointer to the struct dwarf_data for the .gnu_debugaltlink.
>>
>> I've split the patch up this way now, hoping it will make things clearer
>> and/or easier to review.
>>
>>> Why is it void**?
>>
>> It's really struct dwarf_data *, but struct dwarf_data is a type
>> declared in dwarf.c, so it's not known in other files.
>>
>> Thanks,
>> - Tom
>>
>> Here's the first part.
>>
> 
> And here's the second part.

Updated to use 'struct dwarf_data' instead of 'void'.

Thanks,
- Tom
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-libbacktrace-Add-altlink-field-to-struct-dwarf_data.patch
Type: text/x-patch
Size: 4996 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190116/de6047ce/attachment.bin>


More information about the Gcc-patches mailing list