This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hello,
I noticed this because I was testing GDB on a a mips-irix machine
where it started crashing even on a simple "run". It turns out that
one of the files does not have a DW_AT_producer attribute:
<0><1c6>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_high_pc : 0x10002720
DW_AT_low_pc : 0x100025f0
DW_AT_producer : GNU C 3.4.6 for GNAT Pro 6.1.0w (20070225)
DW_AT_language : 1 (ANSI C)
DW_AT_name : /kern.a/gnatmail-5_34/build-kern/src/gcc/crtstuff.c
I am not quite sure why it is absent, but the DWARF reference manual
doesn't seem to indicate that it is mandatory. In any case, I was easily
able to reproduce the problem on x86-linux once I knew what the problem
was. I just created a new testcase for it, which is pretty much a shameless
copy of dw2-basic, with DW_AT_producer removed.
Here is how to reproduce the problem (using the testcase below):
gdb dw2-producer.x
(gdb) list func_cu1
[1] 21433 segmentation fault ../../gdb dw2-producer.x
The crash happens because we do the following inside dwarf2read.c:
attr = dwarf2_attr (die, DW_AT_producer, cu);
if (attr)
cu->producer = DW_STRING (attr);
[...]
record_producer (cu->producer);
(but cu->producer is NULL)
One way of fixing this, of course, is to avoid the call to record_producer
if it's null. But I though it's play it the safe way, and add the guard
inside record_producer instead.
2007-02-26 Joel Brobecker <brobecker@adacore.com>
* buildsym.c (record_producer): Do nothing if no producer is provided.
2007-02-26 Joel Brobecker <brobecker@adacore.com>
* gdb.dwarf2/dw2-producer.S: New file.
* gdb.dwarf2/dw2-producer.exp: New testcase.
Tested on x86-linux, no regression, fixes the attached testcase.
OK to apply?
Thanks,
--
Joel
Attachment:
buildsym.c.diff
Description: Text document
Attachment:
dw2-producer.S
Description: Text document
Attachment:
dw2-producer.exp
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |