http://bugs.winehq.org/show_bug.cgi?id=23137
Summary: dbghelp doesn't support DW_LNE_set_discriminator (gcc 4.6) Product: Wine Version: 1.2-rc3 Platform: x86-64 OS/Version: Linux Status: NEW Keywords: download, source Severity: enhancement Priority: P2 Component: dbghelp AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com
I've noticed lately that my backtraces get filled with: fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4 fixme:dbghelp_dwarf:dwarf2_parse_line_numbers Unsupported extended opcode 4
looking around a bit more, seems that is DW_LNE_set_discriminator. I looked into it a bit more, and tried: diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index 6daf7d7..89a9dfb 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -2075,6 +2075,9 @@ static BOOL dwarf2_parse_line_numbers(const dwarf2_section_t* sections, dwarf2_leb128_as_unsigned(&traverse); dwarf2_leb128_as_unsigned(&traverse); break; + case DW_LNE_set_discriminator: + FIXME("not yet supported...\n"); + break; default: FIXME("Unsupported extended opcode %x\n", extopcode); break; diff --git a/dlls/dbghelp/dwarf.h b/dlls/dbghelp/dwarf.h index 4ecb816..1ea17c0 100644 --- a/dlls/dbghelp/dwarf.h +++ b/dlls/dbghelp/dwarf.h @@ -421,6 +421,7 @@ enum dwarf_calling_convention #define DW_LNE_end_sequence 0x01 #define DW_LNE_set_address 0x02 #define DW_LNE_define_file 0x03 +#define DW_LNE_set_discriminator 0x04
#define DW_CIE_ID ~(0x0)
but that obviously doesn't do much, and makes the backtraces worse than before...