Re: [PATCH] gdb.dwarf2: Define and use gdb_target_symbol_prefix for symbol prefixes

Pedro Alves
2015-11-05T21:19:10Z

On 11/05/2015 08:01 PM, Kevin Buettner wrote:
> On Thu, 05 Nov 2015 10:14:09 +0000
> Pedro Alves <palves@redhat.com> wrote:

>> > Not sure I see what makes gdb.dwarf2/atomic-type.exp different?
>> > E.g., the gdb.dwarf2/dw2-bad-mips-linkage-name.exp hunk looks quite
>> > similar. What makes gdb.dwarf2/atomic-type.exp special?
> I was mistaken. Both of these tests - dw2-bad-mips-linkage-name.exp
> and atomic-type.exp - have problems due to the fact that the call to
> gdb_target_symbol appears within a DW_TAG_ construct. The proc
> _handle_DW_TAG performs command and variable expansion within a DW_TAG_
> construct. (It does other things too.)

...

> --- a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
...
> compile_unit {
> - {low_pc main DW_FORM_addr}
> - {high_pc main+0x10000 DW_FORM_addr}
> + {low_pc [gdb_target_symbol main] DW_FORM_addr}
> + {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr}
> } {
> declare_labels integer_label
>
> @@ -43,8 +43,8 @@ Dwarf::assemble $asm_file {
> DW_TAG_subprogram {
> {name main}
> {DW_AT_external 1 flag}
> - {low_pc main DW_FORM_addr}
> - {high_pc main+0x10000 DW_FORM_addr}
> + {low_pc [gdb_target_symbol main] DW_FORM_addr}
> + {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr}

Aren't these above more instances that needed the "join"? I believe
so, but if not, I'd like to understand why not.
The patch looks good to me otherwise.

BTW, OOC, it seems to be that "main+0x10000" were written
without spaces before to make it a single element. Looks like
that requirement is gone now and we could write:

{high_pc [gdb_target_symbol main] + 0x10000 DW_FORM_addr}

(not saying you should do that, just it's just an OOC.)

Thanks,
Pedro Alves