This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] DWARF: Don't add nameless modules to partial symbol table.
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: Bernhard Heckel <bernhard dot heckel at intel dot com>
- Cc: Pedro Alves <palves at redhat dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 2 Nov 2016 16:41:36 +0000
- Subject: Re: [PATCH] DWARF: Don't add nameless modules to partial symbol table.
- Authentication-results: sourceware.org; auth=none
- References: <1473232651-6340-1-git-send-email-bernhard.heckel@intel.com> <867f9190ip.fsf@gmail.com> <58170975.2080909@intel.com>
On Mon, Oct 31, 2016 at 9:05 AM, Bernhard Heckel
<bernhard.heckel@intel.com> wrote:
> On 21/10/2016 17:37, Yao Qi wrote:
>>
>> Bernhard Heckel <bernhard.heckel@intel.com> writes:
>>
>>> A name for BLOCK DATA in Fortran is optional. If no
>>> name has been assigned, GDB will crash during read-in of DWARF
>>> when BLOCK DATA is represented via DW_TAG_module.
>>> BLOCK DATA is used for one-time initialization of
>>> non-pointer variables in named common blocks.
>>
>> I compiled your test case block-data.f, but there is no DW_TAG_module in
>> debug info. It has DW_TAG_common_block. IOW, I run block-data.exp
>> without your fix in dwarf2read.c, there is no crash in GDB. My gfotran
>> is 4.9.3.
>>
> It happen when compiled with Ifort. I attached a dump of the debug info,
> line 80+ is important.
>
I don't understand why BLOCK DATA is represented as a
DW_TAG_module when program is compiled with ifort. In DWARF 5,
Modula-2 definition module and Fortran 90 module can be represented
as DW_TAG_module.
IMO, "BLOCK DATA" should be represented as a DW_TAG_subprogram,
because it is a program unit initializes data that appears in common
block.
--
Yao (齐尧)