On Mon, 2013-03-25 at 14:27 -0700, Roland McGrath wrote:
I think this change is fine but we should have dwarflint complain about such malformed DWARF and you should immediately report the bugs in any compilers known to produce it.
Yes, I am trying to poke the compiler people. Sadly .debug_line seems to have a somewhat high percentage of weird quirks. The spec says that addresses in a sequence may only increases, but (also because of missing end_sequence markers) you will often find a line program jumps around a lot and you get multiple rows for the same address. The eu-readelf --debug-dump=decodedline support helps to spot them more easily.
Especially GCC not emitting prologue_end markers is a pain because that seems to be the cause of lots of "adhoc heuristics" on how to interpret these quirks.
There are already a couple of issues filed against this for GCC: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48827 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49906
I thought there was also a general bug about the missing DW_LNS_set_prologue_end but I cannot find it now.
Cheers,
Mark