[Lldb-commits] [lldb] r360161 - Added missing files from 360071.
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Tue May 7 08:37:28 PDT 2019
Author: gclayton
Date: Tue May 7 08:37:28 2019
New Revision: 360161
URL: http://llvm.org/viewvc/llvm-project?rev=360161&view=rev
Log:
Added missing files from 360071.
Added:
lldb/trunk/unittests/Symbol/Inputs/inlined-functions.yaml
lldb/trunk/unittests/Symbol/TestLineEntry.cpp
Modified:
lldb/trunk/unittests/Symbol/CMakeLists.txt
Modified: lldb/trunk/unittests/Symbol/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/CMakeLists.txt?rev=360161&r1=360160&r2=360161&view=diff
==============================================================================
--- lldb/trunk/unittests/Symbol/CMakeLists.txt (original)
+++ lldb/trunk/unittests/Symbol/CMakeLists.txt Tue May 7 08:37:28 2019
@@ -4,6 +4,7 @@ add_lldb_unittest(SymbolTests
TestClangASTContext.cpp
TestDWARFCallFrameInfo.cpp
TestType.cpp
+ TestLineEntry.cpp
LINK_LIBS
lldbHost
Added: lldb/trunk/unittests/Symbol/Inputs/inlined-functions.yaml
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/Inputs/inlined-functions.yaml?rev=360161&view=auto
==============================================================================
--- lldb/trunk/unittests/Symbol/Inputs/inlined-functions.yaml (added)
+++ lldb/trunk/unittests/Symbol/Inputs/inlined-functions.yaml Tue May 7 08:37:28 2019
@@ -0,0 +1,943 @@
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x00000001
+ ncmds: 4
+ sizeofcmds: 1160
+ flags: 0x00002000
+ reserved: 0x00000000
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 1032
+ segname: ''
+ vmaddr: 0
+ vmsize: 2022
+ fileoff: 1192
+ filesize: 2022
+ maxprot: 7
+ initprot: 7
+ nsects: 6
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0000000000000000
+ size: 224
+ offset: 0x000004A8
+ align: 4
+ reloff: 0x00000C90
+ nreloc: 1
+ flags: 0x80000400
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - sectname: __debug_str
+ segname: __DWARF
+ addr: 0x00000000000000E0
+ size: 223
+ offset: 0x00000588
+ align: 0
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x02000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - sectname: __debug_abbrev
+ segname: __DWARF
+ addr: 0x00000000000001BF
+ size: 190
+ offset: 0x00000667
+ align: 0
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x02000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - sectname: __debug_info
+ segname: __DWARF
+ addr: 0x000000000000027D
+ size: 583
+ offset: 0x00000725
+ align: 0
+ reloff: 0x00000C98
+ nreloc: 8
+ flags: 0x02000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - sectname: __compact_unwind
+ segname: __LD
+ addr: 0x0000000000000670
+ size: 64
+ offset: 0x00000B18
+ align: 3
+ reloff: 0x00000CD8
+ nreloc: 2
+ flags: 0x02000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - sectname: __debug_line
+ segname: __DWARF
+ addr: 0x0000000000000718
+ size: 206
+ offset: 0x00000BC0
+ align: 0
+ reloff: 0x00000CE8
+ nreloc: 1
+ flags: 0x02000000
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 24
+ platform: 1
+ minos: 658944
+ sdk: 658944
+ ntools: 0
+ - cmd: LC_SYMTAB
+ cmdsize: 24
+ symoff: 3312
+ nsyms: 2
+ stroff: 3344
+ strsize: 20
+ - cmd: LC_DYSYMTAB
+ cmdsize: 80
+ ilocalsym: 0
+ nlocalsym: 0
+ iextdefsym: 0
+ nextdefsym: 2
+ iundefsym: 2
+ nundefsym: 0
+ tocoff: 0
+ ntoc: 0
+ modtaboff: 0
+ nmodtab: 0
+ extrefsymoff: 0
+ nextrefsyms: 0
+ indirectsymoff: 0
+ nindirectsyms: 0
+ extreloff: 0
+ nextrel: 0
+ locreloff: 0
+ nlocrel: 0
+LinkEditData:
+ NameList:
+ - n_strx: 7
+ n_type: 0x0F
+ n_sect: 1
+ n_desc: 0
+ n_value: 0
+ - n_strx: 1
+ n_type: 0x0F
+ n_sect: 1
+ n_desc: 0
+ n_value: 32
+ StringTable:
+ - ''
+ - _main
+ - __Z4sum3iii
+ - ''
+DWARF:
+ debug_str:
+ - 'Apple LLVM version 10.0.1 (clang-1001.0.46.3)'
+ - inlined-functions.cpp
+ - '/Users/aadsm/Projects/llvm-project/lldb/unittests/Symbol/Inputs'
+ - sum3
+ - _Z4sum3iii
+ - _Z4sum2ii
+ - sum2
+ - int
+ - a
+ - b
+ - result
+ - _Z4sum4iiii
+ - sum4
+ - c
+ - d
+ - main
+ - argc
+ - argv
+ - char
+ - sum
+ debug_abbrev:
+ - Code: 0x00000001
+ Tag: DW_TAG_compile_unit
+ Children: DW_CHILDREN_yes
+ Attributes:
+ - Attribute: DW_AT_producer
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_language
+ Form: DW_FORM_data2
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_stmt_list
+ Form: DW_FORM_sec_offset
+ - Attribute: DW_AT_comp_dir
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_low_pc
+ Form: DW_FORM_addr
+ - Attribute: DW_AT_high_pc
+ Form: DW_FORM_data4
+ - Code: 0x00000002
+ Tag: DW_TAG_subprogram
+ Children: DW_CHILDREN_yes
+ Attributes:
+ - Attribute: DW_AT_low_pc
+ Form: DW_FORM_addr
+ - Attribute: DW_AT_high_pc
+ Form: DW_FORM_data4
+ - Attribute: DW_AT_frame_base
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_linkage_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Attribute: DW_AT_external
+ Form: DW_FORM_flag_present
+ - Code: 0x00000003
+ Tag: DW_TAG_formal_parameter
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_location
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Code: 0x00000004
+ Tag: DW_TAG_variable
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_location
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Code: 0x00000005
+ Tag: DW_TAG_subprogram
+ Children: DW_CHILDREN_yes
+ Attributes:
+ - Attribute: DW_AT_linkage_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Attribute: DW_AT_external
+ Form: DW_FORM_flag_present
+ - Attribute: DW_AT_inline
+ Form: DW_FORM_data1
+ - Code: 0x00000006
+ Tag: DW_TAG_formal_parameter
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Code: 0x00000007
+ Tag: DW_TAG_variable
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Code: 0x00000008
+ Tag: DW_TAG_base_type
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_encoding
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_byte_size
+ Form: DW_FORM_data1
+ - Code: 0x00000009
+ Tag: DW_TAG_subprogram
+ Children: DW_CHILDREN_yes
+ Attributes:
+ - Attribute: DW_AT_low_pc
+ Form: DW_FORM_addr
+ - Attribute: DW_AT_high_pc
+ Form: DW_FORM_data4
+ - Attribute: DW_AT_frame_base
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_name
+ Form: DW_FORM_strp
+ - Attribute: DW_AT_decl_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_decl_line
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ - Attribute: DW_AT_external
+ Form: DW_FORM_flag_present
+ - Code: 0x0000000A
+ Tag: DW_TAG_inlined_subroutine
+ Children: DW_CHILDREN_yes
+ Attributes:
+ - Attribute: DW_AT_abstract_origin
+ Form: DW_FORM_ref4
+ - Attribute: DW_AT_low_pc
+ Form: DW_FORM_addr
+ - Attribute: DW_AT_high_pc
+ Form: DW_FORM_data4
+ - Attribute: DW_AT_call_file
+ Form: DW_FORM_data1
+ - Attribute: DW_AT_call_line
+ Form: DW_FORM_data1
+ - Code: 0x0000000B
+ Tag: DW_TAG_formal_parameter
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_location
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_abstract_origin
+ Form: DW_FORM_ref4
+ - Code: 0x0000000C
+ Tag: DW_TAG_variable
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_location
+ Form: DW_FORM_exprloc
+ - Attribute: DW_AT_abstract_origin
+ Form: DW_FORM_ref4
+ - Code: 0x0000000D
+ Tag: DW_TAG_pointer_type
+ Children: DW_CHILDREN_no
+ Attributes:
+ - Attribute: DW_AT_type
+ Form: DW_FORM_ref4
+ debug_info:
+ - Length:
+ TotalLength: 579
+ Version: 4
+ AbbrOffset: 0
+ AddrSize: 8
+ Entries:
+ - AbbrCode: 0x00000001
+ Values:
+ - Value: 0x0000000000000000
+ - Value: 0x0000000000000004
+ - Value: 0x000000000000002E
+ - Value: 0x0000000000000000
+ - Value: 0x0000000000000044
+ - Value: 0x0000000000000000
+ - Value: 0x00000000000000E0
+ - AbbrCode: 0x00000002
+ Values:
+ - Value: 0x0000000000000000
+ - Value: 0x000000000000001E
+ - Value: 0x0000000000000001
+ BlockData:
+ - 0x56
+ - Value: 0x0000000000000089
+ - Value: 0x0000000000000084
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000006
+ - Value: 0x00000000000000B2
+ - Value: 0x0000000000000001
+ - AbbrCode: 0x00000003
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x7C
+ - Value: 0x00000000000000A7
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000006
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000003
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x78
+ - Value: 0x00000000000000A9
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000006
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000003
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x74
+ - Value: 0x00000000000000C3
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000006
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000004
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x70
+ - Value: 0x00000000000000AB
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000007
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x00000005
+ Values:
+ - Value: 0x0000000000000094
+ - Value: 0x000000000000009E
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000001
+ - Value: 0x00000000000000B2
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000001
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000A7
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000001
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000A9
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000001
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000007
+ Values:
+ - Value: 0x00000000000000AB
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000002
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x00000008
+ Values:
+ - Value: 0x00000000000000A3
+ - Value: 0x0000000000000005
+ - Value: 0x0000000000000004
+ - AbbrCode: 0x00000005
+ Values:
+ - Value: 0x00000000000000B2
+ - Value: 0x00000000000000BE
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000B
+ - Value: 0x00000000000000B2
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000001
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000A7
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000B
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000A9
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000B
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000C3
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000B
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000006
+ Values:
+ - Value: 0x00000000000000C5
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000B
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000007
+ Values:
+ - Value: 0x00000000000000AB
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000C
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x00000009
+ Values:
+ - Value: 0x0000000000000020
+ - Value: 0x00000000000000C0
+ - Value: 0x0000000000000001
+ BlockData:
+ - 0x56
+ - Value: 0x00000000000000C7
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000011
+ - Value: 0x00000000000000B2
+ - Value: 0x0000000000000001
+ - AbbrCode: 0x00000003
+ Values:
+ - Value: 0x0000000000000003
+ BlockData:
+ - 0x91
+ - 0xB4
+ - 0x7F
+ - Value: 0x00000000000000CC
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000011
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x00000003
+ Values:
+ - Value: 0x0000000000000003
+ BlockData:
+ - 0x91
+ - 0xA8
+ - 0x7F
+ - Value: 0x00000000000000D1
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000011
+ - Value: 0x0000000000000235
+ - AbbrCode: 0x00000004
+ Values:
+ - Value: 0x0000000000000003
+ BlockData:
+ - 0x91
+ - 0xA4
+ - 0x7F
+ - Value: 0x00000000000000DB
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000013
+ - Value: 0x00000000000000B2
+ - AbbrCode: 0x0000000A
+ Values:
+ - Value: 0x0000000000000080
+ - Value: 0x000000000000005A
+ - Value: 0x0000000000000025
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000012
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x44
+ - Value: 0x0000000000000090
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x40
+ - Value: 0x000000000000009B
+ - AbbrCode: 0x0000000C
+ Values:
+ - Value: 0x0000000000000003
+ BlockData:
+ - 0x91
+ - 0xBC
+ - 0x7F
+ - Value: 0x00000000000000A6
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x0000000A
+ Values:
+ - Value: 0x00000000000000B9
+ - Value: 0x000000000000007F
+ - Value: 0x000000000000003C
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000013
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x64
+ - Value: 0x00000000000000C9
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x60
+ - Value: 0x00000000000000D4
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x5C
+ - Value: 0x00000000000000DF
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x58
+ - Value: 0x00000000000000EA
+ - AbbrCode: 0x0000000C
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x54
+ - Value: 0x00000000000000F5
+ - AbbrCode: 0x0000000A
+ Values:
+ - Value: 0x0000000000000080
+ - Value: 0x000000000000008B
+ - Value: 0x000000000000000C
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000C
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x70
+ - Value: 0x0000000000000090
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x6C
+ - Value: 0x000000000000009B
+ - AbbrCode: 0x0000000C
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x68
+ - Value: 0x00000000000000A6
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x0000000A
+ Values:
+ - Value: 0x0000000000000080
+ - Value: 0x00000000000000A3
+ - Value: 0x0000000000000009
+ - Value: 0x0000000000000001
+ - Value: 0x000000000000000C
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x7C
+ - Value: 0x0000000000000090
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x78
+ - Value: 0x000000000000009B
+ - AbbrCode: 0x0000000C
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x74
+ - Value: 0x00000000000000A6
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x0000000A
+ Values:
+ - Value: 0x0000000000000080
+ - Value: 0x00000000000000CC
+ - Value: 0x0000000000000009
+ - Value: 0x0000000000000001
+ - Value: 0x0000000000000014
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x50
+ - Value: 0x0000000000000090
+ - AbbrCode: 0x0000000B
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x4C
+ - Value: 0x000000000000009B
+ - AbbrCode: 0x0000000C
+ Values:
+ - Value: 0x0000000000000002
+ BlockData:
+ - 0x91
+ - 0x48
+ - Value: 0x00000000000000A6
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x00000000
+ Values: []
+ - AbbrCode: 0x0000000D
+ Values:
+ - Value: 0x000000000000023A
+ - AbbrCode: 0x0000000D
+ Values:
+ - Value: 0x000000000000023F
+ - AbbrCode: 0x00000008
+ Values:
+ - Value: 0x00000000000000D6
+ - Value: 0x0000000000000006
+ - Value: 0x0000000000000001
+ - AbbrCode: 0x00000000
+ Values: []
+ debug_line:
+ - Length:
+ TotalLength: 202
+ Version: 4
+ PrologueLength: 45
+ MinInstLength: 1
+ MaxOpsPerInst: 1
+ DefaultIsStmt: 1
+ LineBase: 251
+ LineRange: 14
+ OpcodeBase: 13
+ StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ]
+ IncludeDirs: []
+ Files:
+ - Name: inlined-functions.cpp
+ DirIdx: 0
+ ModTime: 0
+ Length: 0
+ Opcodes:
+ - Opcode: DW_LNS_extended_op
+ ExtLen: 9
+ SubOpcode: DW_LNE_set_address
+ Data: 0
+ - Opcode: 0x17
+ Data: 0
+ - Opcode: DW_LNS_set_column
+ Data: 18
+ - Opcode: DW_LNS_set_prologue_end
+ Data: 18
+ - Opcode: 0xC9
+ Data: 18
+ - Opcode: DW_LNS_set_column
+ Data: 20
+ - Opcode: DW_LNS_negate_stmt
+ Data: 20
+ - Opcode: 0x3C
+ Data: 20
+ - Opcode: DW_LNS_set_column
+ Data: 24
+ - Opcode: 0x3C
+ Data: 24
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 12
+ - Opcode: DW_LNS_negate_stmt
+ Data: 12
+ - Opcode: 0x3D
+ Data: 12
+ - Opcode: DW_LNS_set_column
+ Data: 5
+ - Opcode: DW_LNS_negate_stmt
+ Data: 5
+ - Opcode: 0x3C
+ Data: 5
+ - Opcode: DW_LNS_set_column
+ Data: 0
+ - Opcode: DW_LNS_negate_stmt
+ Data: 0
+ - Opcode: DW_LNS_advance_line
+ SData: 9
+ Data: 0
+ - Opcode: 0x4A
+ Data: 0
+ - Opcode: DW_LNS_set_column
+ Data: 5
+ - Opcode: DW_LNS_set_prologue_end
+ Data: 5
+ - Opcode: DW_LNS_const_add_pc
+ Data: 5
+ - Opcode: 0x59
+ Data: 5
+ - Opcode: DW_LNS_set_column
+ Data: 18
+ - Opcode: DW_LNS_advance_line
+ SData: -16
+ Data: 18
+ - Opcode: DW_LNS_advance_pc
+ Data: 36
+ - Opcode: DW_LNS_copy
+ Data: 36
+ - Opcode: DW_LNS_set_column
+ Data: 20
+ - Opcode: DW_LNS_negate_stmt
+ Data: 20
+ - Opcode: 0x3C
+ Data: 20
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 23
+ - Opcode: DW_LNS_negate_stmt
+ Data: 23
+ - Opcode: DW_LNS_advance_line
+ SData: 10
+ Data: 23
+ - Opcode: DW_LNS_const_add_pc
+ Data: 23
+ - Opcode: 0xD6
+ Data: 23
+ - Opcode: DW_LNS_set_column
+ Data: 26
+ - Opcode: DW_LNS_negate_stmt
+ Data: 26
+ - Opcode: 0x3C
+ Data: 26
+ - Opcode: DW_LNS_set_column
+ Data: 18
+ - Opcode: DW_LNS_negate_stmt
+ Data: 18
+ - Opcode: DW_LNS_advance_line
+ SData: -10
+ Data: 18
+ - Opcode: 0x90
+ Data: 18
+ - Opcode: DW_LNS_set_column
+ Data: 20
+ - Opcode: DW_LNS_negate_stmt
+ Data: 20
+ - Opcode: 0x3C
+ Data: 20
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 12
+ - Opcode: DW_LNS_negate_stmt
+ Data: 12
+ - Opcode: 0x3D
+ Data: 12
+ - Opcode: DW_LNS_set_column
+ Data: 36
+ - Opcode: DW_LNS_advance_line
+ SData: 9
+ Data: 36
+ - Opcode: 0x3C
+ Data: 36
+ - Opcode: DW_LNS_set_column
+ Data: 39
+ - Opcode: DW_LNS_negate_stmt
+ Data: 39
+ - Opcode: 0x3C
+ Data: 39
+ - Opcode: DW_LNS_set_column
+ Data: 18
+ - Opcode: DW_LNS_negate_stmt
+ Data: 18
+ - Opcode: DW_LNS_advance_line
+ SData: -10
+ Data: 18
+ - Opcode: 0x90
+ Data: 18
+ - Opcode: DW_LNS_set_column
+ Data: 20
+ - Opcode: DW_LNS_negate_stmt
+ Data: 20
+ - Opcode: 0x3C
+ Data: 20
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 29
+ - Opcode: DW_LNS_negate_stmt
+ Data: 29
+ - Opcode: DW_LNS_advance_line
+ SData: 10
+ Data: 29
+ - Opcode: 0x3C
+ Data: 29
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: DW_LNS_negate_stmt
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 12
+ - Opcode: DW_LNS_negate_stmt
+ Data: 12
+ - Opcode: 0x3D
+ Data: 12
+ - Opcode: 0x67
+ Data: 12
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x41
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 18
+ - Opcode: DW_LNS_advance_line
+ SData: -17
+ Data: 18
+ - Opcode: DW_LNS_const_add_pc
+ Data: 18
+ - Opcode: 0x12
+ Data: 18
+ - Opcode: DW_LNS_set_column
+ Data: 20
+ - Opcode: DW_LNS_negate_stmt
+ Data: 20
+ - Opcode: 0x3C
+ Data: 20
+ - Opcode: DW_LNS_set_column
+ Data: 9
+ - Opcode: 0x3C
+ Data: 9
+ - Opcode: DW_LNS_set_column
+ Data: 5
+ - Opcode: DW_LNS_negate_stmt
+ Data: 5
+ - Opcode: DW_LNS_advance_line
+ SData: 19
+ Data: 5
+ - Opcode: 0x3C
+ Data: 5
+ - Opcode: DW_LNS_advance_pc
+ Data: 11
+ - Opcode: DW_LNS_extended_op
+ ExtLen: 1
+ SubOpcode: DW_LNE_end_sequence
+ Data: 11
+...
Added: lldb/trunk/unittests/Symbol/TestLineEntry.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/TestLineEntry.cpp?rev=360161&view=auto
==============================================================================
--- lldb/trunk/unittests/Symbol/TestLineEntry.cpp (added)
+++ lldb/trunk/unittests/Symbol/TestLineEntry.cpp Tue May 7 08:37:28 2019
@@ -0,0 +1,235 @@
+//===-- TestLineEntry.cpp ------------------------------*- C++ -*-===//
+//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "gtest/gtest.h"
+#include <iostream>
+
+#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h"
+#include "Plugins/SymbolFile/DWARF/DWARFASTParserClang.h"
+#include "Plugins/SymbolFile/DWARF/SymbolFileDWARF.h"
+#include "Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h"
+#include "TestingSupport/TestUtilities.h"
+#include "lldb/Symbol/ClangASTContext.h"
+
+#include "lldb/Core/Module.h"
+#include "lldb/Host/FileSystem.h"
+#include "lldb/Host/HostInfo.h"
+#include "lldb/Symbol/CompileUnit.h"
+#include "lldb/Symbol/SymbolContext.h"
+#include "lldb/Utility/StreamString.h"
+
+#include "llvm/Support/FileUtilities.h"
+#include "llvm/Support/Program.h"
+#include "llvm/Testing/Support/Error.h"
+
+using namespace lldb_private;
+using namespace lldb;
+
+class LineEntryTest : public testing::Test {
+public:
+ void SetUp() override {
+ FileSystem::Initialize();
+ HostInfo::Initialize();
+ ObjectFileMachO::Initialize();
+ SymbolVendorMacOSX::Initialize();
+ SymbolFileDWARF::Initialize();
+ ClangASTContext::Initialize();
+ }
+
+ void TearDown() override {
+ ClangASTContext::Terminate();
+ SymbolFileDWARF::Terminate();
+ SymbolVendorMacOSX::Terminate();
+ ObjectFileMachO::Terminate();
+ HostInfo::Terminate();
+ FileSystem::Terminate();
+ }
+
+protected:
+ llvm::Expected<ModuleSP> GetModule();
+ llvm::Expected<LineEntry> GetLineEntryForLine(uint32_t line);
+ ModuleSP m_module_sp;
+};
+
+llvm::Expected<ModuleSP> LineEntryTest::GetModule() {
+ if (m_module_sp)
+ return m_module_sp;
+
+ llvm::SmallString<128> obj;
+ if (auto ec = llvm::sys::fs::createTemporaryFile("source-%%%%%%", "obj", obj))
+ return llvm::errorCodeToError(ec);
+ llvm::FileRemover obj_remover(obj);
+ if (auto error = ReadYAMLObjectFile("inlined-functions.yaml", obj))
+ return llvm::Error(std::move(error));
+
+ m_module_sp = std::make_shared<Module>(ModuleSpec(FileSpec(obj)));
+ // Preload because the temporary file will be gone once we exit this function.
+ m_module_sp->PreloadSymbols();
+ return m_module_sp;
+}
+
+llvm::Expected<LineEntry> LineEntryTest::GetLineEntryForLine(uint32_t line) {
+ auto expected_module_so = GetModule();
+
+ if (!expected_module_so)
+ return llvm::createStringError(llvm::inconvertibleErrorCode(),
+ "Not able to get module for test object.");
+
+ auto module = expected_module_so->get();
+ bool check_inlines = true;
+ bool exact = true;
+ SymbolContextList sc_comp_units;
+ SymbolContextList sc_line_entries;
+ FileSpec file_spec("inlined-functions.cpp");
+ module->ResolveSymbolContextsForFileSpec(file_spec, line, check_inlines,
+ lldb::eSymbolContextCompUnit,
+ sc_comp_units);
+ if (sc_comp_units.GetSize() == 0)
+ return llvm::createStringError(llvm::inconvertibleErrorCode(),
+ "No comp unit found on the test object.");
+ sc_comp_units[0].comp_unit->ResolveSymbolContext(
+ file_spec, line, check_inlines, exact, eSymbolContextLineEntry,
+ sc_line_entries);
+ if (sc_line_entries.GetSize() == 0)
+ return llvm::createStringError(llvm::inconvertibleErrorCode(),
+ "No line entry found on the test object.");
+ return sc_line_entries[0].line_entry;
+}
+
+TEST_F(LineEntryTest, GetSameLineContiguousAddressRangeNoInlines) {
+ auto line_entry = GetLineEntryForLine(18);
+ ASSERT_THAT_EXPECTED(line_entry, llvm::Succeeded());
+ bool include_inlined_functions = false;
+ auto range =
+ line_entry->GetSameLineContiguousAddressRange(include_inlined_functions);
+ ASSERT_EQ(range.GetByteSize(), (uint64_t)0x24);
+}
+
+TEST_F(LineEntryTest, GetSameLineContiguousAddressRangeOneInline) {
+ auto line_entry = GetLineEntryForLine(18);
+ ASSERT_THAT_EXPECTED(line_entry, llvm::Succeeded());
+ bool include_inlined_functions = true;
+ auto range =
+ line_entry->GetSameLineContiguousAddressRange(include_inlined_functions);
+ ASSERT_EQ(range.GetByteSize(), (uint64_t)0x49);
+}
+
+TEST_F(LineEntryTest, GetSameLineContiguousAddressRangeNestedInline) {
+ auto line_entry = GetLineEntryForLine(12);
+ ASSERT_THAT_EXPECTED(line_entry, llvm::Succeeded());
+ bool include_inlined_functions = true;
+ auto range =
+ line_entry->GetSameLineContiguousAddressRange(include_inlined_functions);
+ ASSERT_EQ(range.GetByteSize(), (uint64_t)0x33);
+}
+
+/*
+# inlined-functions.cpp
+inline __attribute__((always_inline)) int sum2(int a, int b) {
+ int result = a + b;
+ return result;
+}
+
+int sum3(int a, int b, int c) {
+ int result = a + b + c;
+ return result;
+}
+
+inline __attribute__((always_inline)) int sum4(int a, int b, int c, int d) {
+ int result = sum2(a, b) + sum2(c, d);
+ result += 0;
+ return result;
+}
+
+int main(int argc, char** argv) {
+ sum3(3, 4, 5) + sum2(1, 2);
+ int sum = sum4(1, 2, 3, 4);
+ sum2(5, 6);
+ return 0;
+}
+
+// g++ -c inlined-functions.cpp -o inlined-functions.o -g -Wno-unused-value
+// obj2yaml inlined-functions.o > inlined-functions.yaml
+
+# Dump of source line per address:
+# inlined-functions.cpp is src.cpp for space considerations.
+0x20: src.cpp:17
+0x21: src.cpp:17
+0x26: src.cpp:17
+0x27: src.cpp:17
+0x29: src.cpp:17
+0x2e: src.cpp:17
+0x2f: src.cpp:17
+0x31: src.cpp:17
+0x36: src.cpp:18
+0x37: src.cpp:18
+0x39: src.cpp:18
+0x3e: src.cpp:18
+0x3f: src.cpp:18
+0x41: src.cpp:18
+0x46: src.cpp:18
+0x47: src.cpp:18
+0x49: src.cpp:18
+0x4e: src.cpp:18
+0x4f: src.cpp:18
+0x51: src.cpp:18
+0x56: src.cpp:18
+0x57: src.cpp:18
+0x59: src.cpp:18
+0x5e: src.cpp:18 -> sum2 at src.cpp:2
+0x5f: src.cpp:18 -> sum2 at src.cpp:2
+0x61: src.cpp:18 -> sum2 at src.cpp:2
+0x66: src.cpp:18 -> sum2 at src.cpp:2
+0x67: src.cpp:18 -> sum2 at src.cpp:2
+0x69: src.cpp:18 -> sum2 at src.cpp:2
+0x6e: src.cpp:18 -> sum2 at src.cpp:2
+0x6f: src.cpp:18 -> sum2 at src.cpp:2
+0x71: src.cpp:18 -> sum2 at src.cpp:2
+0x76: src.cpp:18 -> sum2 at src.cpp:2
+0x77: src.cpp:18 -> sum2 at src.cpp:2
+0x79: src.cpp:18 -> sum2 at src.cpp:2
+0x7e: src.cpp:18 -> sum2 at src.cpp:2
+0x7f: src.cpp:19 -> sum4 at src.cpp:12
+0x81: src.cpp:19 -> sum4 at src.cpp:12
+0x86: src.cpp:19 -> sum4 at src.cpp:12
+0x87: src.cpp:19 -> sum4 at src.cpp:12
+0x89: src.cpp:19 -> sum4 at src.cpp:12
+0x8e: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0x8f: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0x91: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0x96: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:3
+0x97: src.cpp:19 -> sum4 at src.cpp:12
+0x99: src.cpp:19 -> sum4 at src.cpp:12
+0x9e: src.cpp:19 -> sum4 at src.cpp:12
+0x9f: src.cpp:19 -> sum4 at src.cpp:12
+0xa1: src.cpp:19 -> sum4 at src.cpp:12
+0xa6: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0xa7: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0xa9: src.cpp:19 -> sum4 at src.cpp:12 -> sum2 at src.cpp:2
+0xae: src.cpp:19 -> sum4 at src.cpp:12
+0xaf: src.cpp:19 -> sum4 at src.cpp:12
+0xb1: src.cpp:19 -> sum4 at src.cpp:12
+0xb6: src.cpp:19 -> sum4 at src.cpp:13
+0xb7: src.cpp:19 -> sum4 at src.cpp:13
+0xb9: src.cpp:19 -> sum4 at src.cpp:14
+0xbe: src.cpp:19
+0xbf: src.cpp:19
+0xc1: src.cpp:19
+0xc6: src.cpp:19
+0xc7: src.cpp:19
+0xc9: src.cpp:19
+0xce: src.cpp:20 -> sum2 at src.cpp:2
+0xcf: src.cpp:20 -> sum2 at src.cpp:2
+0xd1: src.cpp:20 -> sum2 at src.cpp:2
+0xd6: src.cpp:21
+0xd7: src.cpp:21
+0xd9: src.cpp:21
+0xde: src.cpp:21
+*/
More information about the lldb-commits
mailing list