1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
# RUN: yaml2obj %s | not llvm-dwarfdump --verify - | FileCheck %s --implicit-check-not=error:
# CHECK: error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x0000001a: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000000d] = "main")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000001000)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000002000)
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_strp] ( .debug_str[0x00000012] = "")
# CHECK-NEXT: DW_AT_call_line [DW_FORM_data1] (5){{[[:space:]]}}
# CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x00000034: DW_TAG_inlined_subroutine
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000013] = "inline1")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000001100)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_data4] (0x00000100)
# CHECK-NEXT: DW_AT_call_file [DW_FORM_strp] ( .debug_str[0x00000012] = "")
# CHECK-NEXT: DW_AT_call_line [DW_FORM_data1] (10){{[[:space:]]}}
# CHECK-NEXT: error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000)
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2)
# CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3)
# CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4)
# CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}}
# CHECK-NEXT: error: DIE has DW_AT_decl_line with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000)
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2)
# CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3)
# CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4)
# CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}}
# CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000)
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2)
# CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3)
# CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4)
# CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}}
# CHECK-NEXT: error: DIE has DW_AT_call_line with invalid encoding{{[[:space:]]}}
# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
# CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] (0x0000000000002000)
# CHECK-NEXT: DW_AT_high_pc [DW_FORM_addr] (0x0000000000003000)
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_sdata] (2)
# CHECK-NEXT: DW_AT_decl_line [DW_FORM_sdata] (3)
# CHECK-NEXT: DW_AT_call_file [DW_FORM_sdata] (4)
# CHECK-NEXT: DW_AT_call_line [DW_FORM_sdata] (5){{[[:space:]]}}
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
DWARF:
debug_str:
- ''
- '/tmp/main.c'
- main
- ''
- inline1
- foo
debug_abbrev:
- Table:
- Code: 0x0000000000000001
Tag: DW_TAG_compile_unit
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_language
Form: DW_FORM_data2
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Code: 0x0000000000000002
Tag: DW_TAG_subprogram
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_addr
- Attribute: DW_AT_decl_file
Form: DW_FORM_strp
- Attribute: DW_AT_call_line
Form: DW_FORM_data1
- Code: 0x0000000000000003
Tag: DW_TAG_inlined_subroutine
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_strp
- 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_strp
- Attribute: DW_AT_call_line
Form: DW_FORM_data1
- Code: 0x0000000000000004
Tag: DW_TAG_subprogram
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_addr
- Attribute: DW_AT_decl_file
Form: DW_FORM_sdata
- Attribute: DW_AT_decl_line
Form: DW_FORM_sdata
- Attribute: DW_AT_call_file
Form: DW_FORM_sdata
- Attribute: DW_AT_call_line
Form: DW_FORM_sdata
debug_info:
- Length: 0x0000000000000061
Version: 4
AbbrOffset: 0x0000000000000000
AddrSize: 8
Entries:
- AbbrCode: 0x00000001
Values:
- Value: 0x0000000000000001
- Value: 0x0000000000000002
- Value: 0x0000000000000000
- AbbrCode: 0x00000002
Values:
- Value: 0x000000000000000D
- Value: 0x0000000000001000
- Value: 0x0000000000002000
- Value: 0x0000000000000012
- Value: 0x0000000000000005
- AbbrCode: 0x00000003
Values:
- Value: 0x0000000000000013
- Value: 0x0000000000001100
- Value: 0x0000000000000100
- Value: 0x0000000000000012
- Value: 0x000000000000000A
- AbbrCode: 0x00000004
Values:
- Value: 0x000000000000001B
- Value: 0x0000000000002000
- Value: 0x0000000000003000
- Value: 0x0000000000000002
- Value: 0x0000000000000003
- Value: 0x0000000000000004
- Value: 0x0000000000000005
- AbbrCode: 0x00000000
Values: []
- AbbrCode: 0x00000000
Values: []
...
|