* [PATCH][gdb/symtab] Fix wrong unit_type Dwarf Error
@ 2021-02-11 10:59 Tom de Vries
2021-02-24 23:01 ` [PING][PATCH][gdb/symtab] " Tom de Vries
0 siblings, 1 reply; 3+ messages in thread
From: Tom de Vries @ 2021-02-11 10:59 UTC (permalink / raw)
To: gdb-patches
Hi,
When running test-case gdb.dwarf2/fission-mix.exp using gcc-11 (and using the
tentative fix for PR27353 to get past that assertion failure), I run into:
...
(gdb) file fission-mix^M
Reading symbols from fission-mix...^M
Dwarf Error: wrong unit_type in compilation unit header \
(is DW_UT_split_compile (0x05), should be DW_UT_type (0x02)) \
[in module fission-mix2.dwo]^M
(No debugging symbols found in fission-mix)^M
...
The compilation unit that is complained about is:
...
Contents of the .debug_info.dwo section (loaded from fission-mix2.dwo):
Compilation Unit @ offset 0x0:
Length: 0x57 (32-bit)
Version: 5
Unit Type: DW_UT_split_compile (5)
Abbrev Offset: 0x0
Pointer Size: 8
DWO ID: 0x3e3930d3cc1805df
<0><14>: Abbrev Number: 1 (DW_TAG_compile_unit)
...
And the dwarf error is triggered here in read_comp_unit_head:
...
case DW_UT_split_compile:
if (section_kind != rcuh_kind::COMPILE)
error (_("Dwarf Error: wrong unit_type in compilation unit header "
"(is %s, should be %s) [in module %s]"),
dwarf_unit_type_name (cu_header->unit_type),
dwarf_unit_type_name (DW_UT_type), filename);
break;
...
due to passing rcuh_kind::TYPE here in open_and_init_dwo_file:
...
create_debug_type_hash_table (per_objfile, dwo_file.get (),
&dwo_file->sections.info, dwo_file->tus,
rcuh_kind::TYPE);
...
Fix this by changing the section_kind argument to create_debug_type_hash_table
to rcuh_kind::COMPILE, to reflect that we're passing &dwo_file->sections.info
rather than &dwo_file->sections.types.
Tested on x86_64-linux.
Any comments?
Thanks,
- Tom
[gdb/symtab] Fix wrong unit_type Dwarf Error
gdb/ChangeLog:
2021-02-11 Tom de Vries <tdevries@suse.de>
PR symtab/27354
* dwarf2/read.c (open_and_init_dwo_file): Use rcuh_kind::COMPILE as
section_kind for &dwo_file->sections.info.
---
gdb/dwarf2/read.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 51bf0fbeea5..aacb1806742 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -12952,7 +12952,7 @@ open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
{
create_debug_type_hash_table (per_objfile, dwo_file.get (),
&dwo_file->sections.info, dwo_file->tus,
- rcuh_kind::TYPE);
+ rcuh_kind::COMPILE);
}
dwarf_read_debug_printf ("DWO file found: %s", dwo_name);
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PING][PATCH][gdb/symtab] Fix wrong unit_type Dwarf Error
2021-02-11 10:59 [PATCH][gdb/symtab] Fix wrong unit_type Dwarf Error Tom de Vries
@ 2021-02-24 23:01 ` Tom de Vries
2021-02-25 14:37 ` Tom Tromey
0 siblings, 1 reply; 3+ messages in thread
From: Tom de Vries @ 2021-02-24 23:01 UTC (permalink / raw)
To: gdb-patches
On 2/11/21 11:59 AM, Tom de Vries wrote:
> Hi,
>
> When running test-case gdb.dwarf2/fission-mix.exp using gcc-11 (and using the
> tentative fix for PR27353 to get past that assertion failure), I run into:
> ...
> (gdb) file fission-mix^M
> Reading symbols from fission-mix...^M
> Dwarf Error: wrong unit_type in compilation unit header \
> (is DW_UT_split_compile (0x05), should be DW_UT_type (0x02)) \
> [in module fission-mix2.dwo]^M
> (No debugging symbols found in fission-mix)^M
> ...
>
> The compilation unit that is complained about is:
> ...
> Contents of the .debug_info.dwo section (loaded from fission-mix2.dwo):
>
> Compilation Unit @ offset 0x0:
> Length: 0x57 (32-bit)
> Version: 5
> Unit Type: DW_UT_split_compile (5)
> Abbrev Offset: 0x0
> Pointer Size: 8
> DWO ID: 0x3e3930d3cc1805df
> <0><14>: Abbrev Number: 1 (DW_TAG_compile_unit)
> ...
>
> And the dwarf error is triggered here in read_comp_unit_head:
> ...
> case DW_UT_split_compile:
> if (section_kind != rcuh_kind::COMPILE)
> error (_("Dwarf Error: wrong unit_type in compilation unit header "
> "(is %s, should be %s) [in module %s]"),
> dwarf_unit_type_name (cu_header->unit_type),
> dwarf_unit_type_name (DW_UT_type), filename);
> break;
> ...
> due to passing rcuh_kind::TYPE here in open_and_init_dwo_file:
> ...
> create_debug_type_hash_table (per_objfile, dwo_file.get (),
> &dwo_file->sections.info, dwo_file->tus,
> rcuh_kind::TYPE);
> ...
>
> Fix this by changing the section_kind argument to create_debug_type_hash_table
> to rcuh_kind::COMPILE, to reflect that we're passing &dwo_file->sections.info
> rather than &dwo_file->sections.types.
>
> Tested on x86_64-linux.
>
> Any comments?
>
Ping.
Thanks,
- Tom
> [gdb/symtab] Fix wrong unit_type Dwarf Error
>
> gdb/ChangeLog:
>
> 2021-02-11 Tom de Vries <tdevries@suse.de>
>
> PR symtab/27354
> * dwarf2/read.c (open_and_init_dwo_file): Use rcuh_kind::COMPILE as
> section_kind for &dwo_file->sections.info.
>
> ---
> gdb/dwarf2/read.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
> index 51bf0fbeea5..aacb1806742 100644
> --- a/gdb/dwarf2/read.c
> +++ b/gdb/dwarf2/read.c
> @@ -12952,7 +12952,7 @@ open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
> {
> create_debug_type_hash_table (per_objfile, dwo_file.get (),
> &dwo_file->sections.info, dwo_file->tus,
> - rcuh_kind::TYPE);
> + rcuh_kind::COMPILE);
> }
>
> dwarf_read_debug_printf ("DWO file found: %s", dwo_name);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PING][PATCH][gdb/symtab] Fix wrong unit_type Dwarf Error
2021-02-24 23:01 ` [PING][PATCH][gdb/symtab] " Tom de Vries
@ 2021-02-25 14:37 ` Tom Tromey
0 siblings, 0 replies; 3+ messages in thread
From: Tom Tromey @ 2021-02-25 14:37 UTC (permalink / raw)
To: Tom de Vries; +Cc: gdb-patches
>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
>> Fix this by changing the section_kind argument to create_debug_type_hash_table
>> to rcuh_kind::COMPILE, to reflect that we're passing &dwo_file->sections.info
>> rather than &dwo_file->sections.types.
>>
>> Tested on x86_64-linux.
>>
>> Any comments?
Sorry about dropping this. My only comment is that this code seems
unduly complicated, but at the same time, I didn't feel like trying to
untangle it all.
This is ok.
Tom
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-02-25 14:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-11 10:59 [PATCH][gdb/symtab] Fix wrong unit_type Dwarf Error Tom de Vries
2021-02-24 23:01 ` [PING][PATCH][gdb/symtab] " Tom de Vries
2021-02-25 14:37 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).