On 19-05-2020 22:32, Tom Tromey wrote: >>>>>> "Tom" == Tom de Vries writes: > > Tom> Fix the inconsistency by completing implementation of > Tom> dw2_map_matching_symbols. > > Thanks for doing this. > > Tom> Tested on x86_64-linux, both with native and target board > Tom> cc-with-debug-index. > > Tom> Any comments? > > This may be the only barrier to supporting Ada in .gdb_index. > So, it seems like the Ada check in dwarf2/index-write.c should probably > be removed as well...? > > I'm not 100% sure whether it will work or not. Using this patch, I managed to get it working. The patch does the following: - enable ada .gdb_index by removing the ada check in write_psymbols - copy some ada-specific code from debug_names::insert to write_psymbols - disable a workaround for gold/15646 in dw2_expand_marked_cus As for the disabled workaround, I ran into trouble in gdb.ada/access_tagged_param.exp, where setting a breakpoint on foo failed. The index shows that there are two entries for foo, one variable, one function: ... [3733] foo: 3 [global, variable] 5 [global, function] ... The workaround skips the function, so disabling the workaround allows the test to pass (my guess atm is that the workaround is not precise enough). FWIW, if I use .debug_names instead, I see the same pattern: ... [445] #0b887389 foo: <6> DW_TAG_subprogram DW_IDX_compile_unit=5 DW_IDX_GNU_external=1 <2> DW_TAG_variable DW_IDX_compile_unit=3 DW_IDX_GNU_external=1 ... Thanks, - Tom