[lldb-dev] multiple debug line sections & DWARFDebugLine::ParseSupportFiles
Carlo Kok
ck at remobjects.com
Fri Sep 27 02:11:44 PDT 2013
Latest llvm (i386 target) generates a debug_line section with multiple
debug_line blocks in it like:
.debug_line contents:
----------------------------------------------------------------------
debug_line[0x00000000]
----------------------------------------------------------------------
Line table prologue:
total_length: 0x0000005e
version: 0x0002
prologue_length: 0x00000040
min_inst_length: 0x01
default_is_stmt: 0x01
line_base: -5
line_range: 14
opcode_base: 0x0d
...
standard_opcode_lengths[ DW_LNS_set_prologue_end ] = 0
standard_opcode_lengths[ DW_LNS_set_epilogue_begin ] = 0
standard_opcode_lengths[ DW_LNS_set_isa ] = 1
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 0 0x00000000 0x00000000 universalapp13.oxygene
file_names[ 2] 0 0x00000000 0x00000000 appdelegate.pas
0x000000000000a703 2 29 9 is_stmt
----------------------------------------------------------------------
debug_line[0x00000062]
----------------------------------------------------------------------
Line table prologue:
total_length: 0x00000033
version: 0x0002
prologue_length: 0x0000002d
min_inst_length: 0x01
default_is_stmt: 0x01
line_base: -5
line_range: 14
opcode_base: 0x0d
..
standard_opcode_lengths[ DW_LNS_set_epilogue_begin ] = 0
standard_opcode_lengths[ DW_LNS_set_isa ] = 1
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 0 0x00000000 0x00000000 universalapp13.oxygene
(full dump at http://pastebin.com/YfLUMQXC)
However, it seems that DWARFDebugLine::ParseSupportFiles / bool
SymbolFileDWARF::ParseCompileUnitSupportFiles only parses 1 of these, so
it only considers "appdelegate.pas" part of this. Is this a current lldb
limitation or is there something wrong with how the debug info is emitted?
--
Carlo Kok
RemObjects Software
More information about the lldb-dev
mailing list