[gdb/symtab] Save modules in .debug_names

When running test-case gdb.fortran/info-modules.exp with target board
debug-names, I run into:
...
FAIL: gdb.fortran/info-modules.exp: info modules: check for entry \
  'info-types-2.f90', '18', 'mod2'
...

In more detail, comparing the behaviour of the executable without and with
.debug_names section, we have:
...
-$ gdb -batch info-modules -ex "info modules"
+$ gdb -batch info-modules.debugnames -ex "info modules"
 All defined modules:

-File /data/gdb_versions/devel/src/gdb/testsuite/gdb.fortran/info-types-2.f90:
-18:     mod2
-
 File /data/gdb_versions/devel/src/gdb/testsuite/gdb.fortran/info-types.f90:
 16:     mod1
...

This is due to the fact that the .debug_names section does not contain
DW_TAG_module entries.

Fix this in debug_names::psymbol_tag.

Build and tested on x86_64-linux with target board debug-names.

gdb/ChangeLog:

2020-05-11  Tom de Vries  <tdevries@suse.de>

	* dwarf2/index-write.c (debug_names::psymbol_tag): Handle
	MODULE_DOMAIN.
This commit is contained in:
Tom de Vries 2020-05-11 17:13:49 +02:00
parent 3ee6bb113a
commit 7666722fce
2 changed files with 7 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-05-11 Tom de Vries <tdevries@suse.de>
* dwarf2/index-write.c (debug_names::psymbol_tag): Handle
MODULE_DOMAIN.
2020-05-11 Tom de Vries <tdevries@suse.de>
PR symtab/25941

View File

@ -1209,6 +1209,8 @@ private:
}
case STRUCT_DOMAIN:
return DW_TAG_structure_type;
case MODULE_DOMAIN:
return DW_TAG_module;
default:
return 0;
}