[RFC] regresssion(internal-error) printing subprogram argument
Joel Brobecker
brobecker@adacore.com
Fri Dec 15 09:48:00 GMT 2017
> Reading back the patch on the list, I realized that this must be
> fixing "maint check-psymtabs" for Ada. And indeed, without my
> patch, I get here:
>
> $ gdb ./testsuite/outputs/gdb.ada/var_arr_typedef/var_arr_typedef
> (gdb) start
> ...
> (gdb) maint check-psymtabs
> Global symbol `adaS' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> Global symbol `interfacesS' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> Global symbol `packB' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> Global symbol `packS' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> Global symbol `systemS' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> Global symbol `var_arr_typedefB' only found in gdb/testsuite/outputs/gdb.ada/var_arr_typedef/b~var_arr_typedef.adb psymtab
> (gdb)
>
> After:
>
> (gdb) start
> ...
> (gdb) maint check-psymtabs
> (gdb
>
> Looks like we only test that command for C, currently...
Good point!
Here is a commit which adds a testcase.
Sadly, unlike you, I still get an error:
(gdb) maintenance check-psymtabs
Global symbol `interfaces__cS' only found in /[...]/maint_with_ada/b~var_arr_typedef.adb psymtab
I am not sure why this is happening just yet; the symbol, at first,
looked like it had an interesting feature, which is both a DW_AT_name
and a DW_AT_linkage name:
<1><ad2>: Abbrev Number: 35 (DW_TAG_variable)
<ad3> DW_AT_name : (indirect string, offset: 0x476): ada_main__u00047
<ad7> DW_AT_decl_file : 5
<ad8> DW_AT_decl_line : 132
<ad9> DW_AT_linkage_name: (indirect string, offset: 0x1b7e): interfaces__cS
<add> DW_AT_type : <0x79>
<ae1> DW_AT_external : 1
<ae1> DW_AT_location : 9 byte block: 3 20 1 0 0 0 0 0 0 (DW_OP_addr: 120)
However, there are plenty of other similar symbols, for instance:
<1><b04>: Abbrev Number: 35 (DW_TAG_variable)
<b05> DW_AT_name : (indirect string, offset: 0x4b9): ada_main__u00049
<b09> DW_AT_decl_file : 5
<b0a> DW_AT_decl_line : 136
<b0b> DW_AT_linkage_name: (indirect string, offset: 0x17cc): system__bounded_stringsS
<b0f> DW_AT_type : <0x79>
<b13> DW_AT_external : 1
<b13> DW_AT_location : 9 byte block: 3 28 1 0 0 0 0 0 0 (DW_OP_addr: 128)
So I'm still not sure what makes interfaces__cS special. I will look
into it when I have a chance...
--
Joel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-gdb.ada-maint_with_ada.exp-New-testcase.patch
Type: text/x-diff
Size: 6182 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20171215/e30f99be/attachment.bin>
More information about the Gdb-patches
mailing list