summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSpyridoula Gravani <sgravani@apple.com>2017-06-29 20:13:05 +0000
committerSpyridoula Gravani <sgravani@apple.com>2017-06-29 20:13:05 +0000
commit7eed73772dc7f5cc7ddf352ef2216e329eab19c3 (patch)
treed2dd700ed82653e4cf1ef7e0ba9fc4ea22131c7e /test
parentfd1b7e89e7a3c4a7522c22d9bbd1775b7ca309c5 (diff)
[DWARF] Added verification checks for the .apple_names section.
This patch verifies the number of atoms, the validity of the form for each atom, as well as the validity of the hashdata. For hashdata, we're verifying that the hashdata offset is correct and that the offset in the .debug_info for each DIE in the hashdata is also valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306735 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/DebugInfo/dwarfdump-accel.test5
-rw-r--r--test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s192
-rw-r--r--test/tools/llvm-dwarfdump/X86/apple_names_verify_data.s64
-rw-r--r--test/tools/llvm-dwarfdump/X86/apple_names_verify_form.s58
-rw-r--r--test/tools/llvm-dwarfdump/X86/apple_names_verify_num_atoms.s59
-rw-r--r--test/tools/llvm-dwarfdump/X86/no_apple_names_verify.s33
-rw-r--r--test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s174
7 files changed, 219 insertions, 366 deletions
diff --git a/test/DebugInfo/dwarfdump-accel.test b/test/DebugInfo/dwarfdump-accel.test
index c6a971a2b9a..a49d024992c 100644
--- a/test/DebugInfo/dwarfdump-accel.test
+++ b/test/DebugInfo/dwarfdump-accel.test
@@ -1,4 +1,5 @@
RUN: llvm-dwarfdump %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s
+RUN: llvm-dwarfdump -verify %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s --check-prefix=VERIFY
Gather some DIE indexes to verify the accelerator table contents.
CHECK: .debug_info contents
@@ -63,3 +64,7 @@ CHECK-NOT: Name
CHECK: {Atom[0]: [[READONLY]]}
CHECK: {Atom[0]: [[ASSIGN]]}
CHECK: {Atom[0]: [[SETASSIGN]]}
+
+Verify the debug info in the apple_names accelerator table.
+VERIFY: Verifying .apple_names
+VERIFY-NEXT: No errors.
diff --git a/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s b/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s
deleted file mode 100644
index 7b61a946281..00000000000
--- a/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s
+++ /dev/null
@@ -1,192 +0,0 @@
-# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
-# RUN: | not llvm-dwarfdump -verify - \
-# RUN: | FileCheck %s
-
-# CHECK: Verifying .apple_names...
-# CHECK-NEXT: error: Bucket[0] has invalid hash index: [-2]
-
-# This test is meant to verify that the -verify option
-# in llvm-dwarfdump, correctly identifies
-# an invalid hash index for bucket[0] in the .apple_names section.
-
- .section __TEXT,__text,regular,pure_instructions
- .file 1 "basic.c"
- .comm _i,4,2 ## @i
- .section __DWARF,__debug_str,regular,debug
-Linfo_string:
- .asciz "basic.c" ## string offset=42
- .asciz "i" ## string offset=84
- .asciz "int" ## string offset=86
- .section __DWARF,__debug_loc,regular,debug
-Lsection_debug_loc:
- .section __DWARF,__debug_abbrev,regular,debug
-Lsection_abbrev:
- .byte 1 ## Abbreviation Code
- .byte 17 ## DW_TAG_compile_unit
- .byte 1 ## DW_CHILDREN_yes
- .byte 37 ## DW_AT_producer
- .byte 14 ## DW_FORM_strp
- .byte 19 ## DW_AT_language
- .byte 5 ## DW_FORM_data2
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 16 ## DW_AT_stmt_list
- .byte 23 ## DW_FORM_sec_offset
- .byte 27 ## DW_AT_comp_dir
- .byte 14 ## DW_FORM_strp
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 2 ## Abbreviation Code
- .byte 52 ## DW_TAG_variable
- .byte 0 ## DW_CHILDREN_no
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 73 ## DW_AT_type
- .byte 19 ## DW_FORM_ref4
- .byte 63 ## DW_AT_external
- .byte 25 ## DW_FORM_flag_present
- .byte 58 ## DW_AT_decl_file
- .byte 11 ## DW_FORM_data1
- .byte 59 ## DW_AT_decl_line
- .byte 11 ## DW_FORM_data1
- .byte 2 ## DW_AT_location
- .byte 24 ## DW_FORM_exprloc
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 3 ## Abbreviation Code
- .byte 36 ## DW_TAG_base_type
- .byte 0 ## DW_CHILDREN_no
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 62 ## DW_AT_encoding
- .byte 11 ## DW_FORM_data1
- .byte 11 ## DW_AT_byte_size
- .byte 11 ## DW_FORM_data1
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 0 ## EOM(3)
- .section __DWARF,__debug_info,regular,debug
-Lsection_info:
-Lcu_begin0:
- .long 55 ## Length of Unit
- .short 4 ## DWARF version number
-Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
- .long Lset0
- .byte 8 ## Address Size (in bytes)
- .byte 1 ## Abbrev [1] 0xb:0x30 DW_TAG_compile_unit
- .long 0 ## DW_AT_producer
- .short 12 ## DW_AT_language
- .long 42 ## DW_AT_name
-Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
- .long Lset1
- .long 50 ## DW_AT_comp_dir
- .byte 2 ## Abbrev [2] 0x1e:0x15 DW_TAG_variable
- .long 84 ## DW_AT_name
- .long 51 ## DW_AT_type
- ## DW_AT_external
- .byte 1 ## DW_AT_decl_file
- .byte 1 ## DW_AT_decl_line
- .byte 9 ## DW_AT_location
- .byte 3
- .quad _i
- .byte 3 ## Abbrev [3] 0x33:0x7 DW_TAG_base_type
- .long 86 ## DW_AT_name
- .byte 5 ## DW_AT_encoding
- .byte 4 ## DW_AT_byte_size
- .byte 0 ## End Of Children Mark
- .section __DWARF,__debug_ranges,regular,debug
-Ldebug_range:
- .section __DWARF,__debug_macinfo,regular,debug
-Ldebug_macinfo:
-Lcu_macro_begin0:
- .byte 0 ## End Of Macro List Mark
- .section __DWARF,__apple_names,regular,debug
-Lnames_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 1 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .long -2 ## Bucket 0 -- error: Bucket[0] has invalid hash index: [-2]
- .long 177678 ## Hash in Bucket 0
- .long LNames0-Lnames_begin ## Offset in Bucket 0
-LNames0:
- .long 84 ## i
- .long 1 ## Num DIEs
- .long 30
- .long 0
- .section __DWARF,__apple_objc,regular,debug
-Lobjc_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
- .section __DWARF,__apple_namespac,regular,debug
-Lnamespac_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
- .section __DWARF,__apple_types,regular,debug
-Ltypes_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 1 ## Header Hash Count
- .long 20 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 3 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .short 3 ## DW_ATOM_die_tag
- .short 5 ## DW_FORM_data2
- .short 4 ## DW_ATOM_type_flags
- .short 11 ## DW_FORM_data1
- .long 0 ## Bucket 0
- .long 193495088 ## Hash in Bucket 0
- .long Ltypes0-Ltypes_begin ## Offset in Bucket 0
-Ltypes0:
- .long 86 ## int
- .long 1 ## Num DIEs
- .long 51
- .short 36
- .byte 0
- .long 0
- .section __DWARF,__apple_exttypes,regular,debug
-Lexttypes_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 7 ## DW_ATOM_ext_types
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
-
-.subsections_via_symbols
- .section __DWARF,__debug_line,regular,debug
-Lsection_line:
-Lline_table_start0:
diff --git a/test/tools/llvm-dwarfdump/X86/apple_names_verify_data.s b/test/tools/llvm-dwarfdump/X86/apple_names_verify_data.s
new file mode 100644
index 00000000000..6d548543e4b
--- /dev/null
+++ b/test/tools/llvm-dwarfdump/X86/apple_names_verify_data.s
@@ -0,0 +1,64 @@
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | not llvm-dwarfdump -verify - \
+# RUN: | FileCheck %s
+
+# CHECK: Verifying .apple_names...
+# CHECK-NEXT: error: Bucket[0] has invalid hash index: 4294967294
+# CHECK-NEXT: error: Hash[0] has invalid HashData offset: 0x000000b4
+# CHECK-NEXT: error: .apple_names Bucket[1] Hash[1] = 0x0002b60f Str[0] = 0x0000005a DIE[0] = 0x00000001 is not a valid DIE offset for "j".
+
+# This test is meant to verify that the -verify option
+# in llvm-dwarfdump, correctly identifies
+# an invalid hash index for bucket[0] in the .apple_names section,
+# an invalid HashData offset for Hash[0], as well as
+# an invalid DIE offset in the .debug_info section.
+# We're reading an invalid DIE due to the incorrect interpretation of DW_FORM for the DIE.
+# Instead of DW_FORM_data4 the Atom[0].form is: DW_FORM_flag_present.
+
+ .section __TEXT,__text,regular,pure_instructions
+ .file 1 "basic.c"
+ .comm _i,4,2 ## @i
+ .comm _j,4,2 ## @j
+ .section __DWARF,__debug_str,regular,debug
+Linfo_string:
+ .asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
+ .asciz "basic.c" ## string offset=42
+ .asciz "/Users/sgravani/Development/tests" ## string offset=50
+ .asciz "i" ## string offset=84
+ .asciz "int" ## string offset=86
+ .asciz "j" ## string offset=90
+ .section __DWARF,__debug_info,regular,debug
+Lsection_info:
+ .section __DWARF,__apple_names,regular,debug
+Lnames_begin:
+ .long 1212240712 ## Header Magic
+ .short 1 ## Header Version
+ .short 0 ## Header Hash Function
+ .long 2 ## Header Bucket Count
+ .long 2 ## Header Hash Count
+ .long 12 ## Header Data Length
+ .long 0 ## HeaderData Die Offset Base
+ .long 1 ## HeaderData Atom Count
+ .short 1 ## DW_ATOM_die_offset
+ .short 25 ## DW_FORM_data4 -- error: .apple_names Bucket[1] Hash[1] = 0x0002b60f Str[0] = 0x0000005a DIE[0] = 0x00000001 is not a valid DIE offset for "j".
+ .long -2 ## Bucket 0 -- error: Bucket[0] has invalid hash index: 4294967294
+ .long 1 ## Bucket 1
+ .long 177678 ## Hash in Bucket 0
+ .long 177679 ## Hash in Bucket 1
+ .long Lsection_line ## Offset in Bucket 0 -- error: Hash[0] has invalid HashData offset: 0x000000b4
+ .long LNames1-Lnames_begin ## Offset in Bucket 1
+LNames0:
+ .long 84 ## i
+ .long 1 ## Num DIEs
+ .long 30
+ .long 0
+LNames1:
+ .long 90 ## j
+ .long 1 ## Num DIEs
+ .long 58
+ .long 0
+
+.subsections_via_symbols
+ .section __DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0:
diff --git a/test/tools/llvm-dwarfdump/X86/apple_names_verify_form.s b/test/tools/llvm-dwarfdump/X86/apple_names_verify_form.s
new file mode 100644
index 00000000000..ed4bf57069c
--- /dev/null
+++ b/test/tools/llvm-dwarfdump/X86/apple_names_verify_form.s
@@ -0,0 +1,58 @@
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | not llvm-dwarfdump -verify - \
+# RUN: | FileCheck %s
+
+# CHECK: Verifying .apple_names...
+# CHECK-NEXT: error: unsupported form; failed to read HashData
+
+# This test is meant to verify that the -verify option
+# in llvm-dwarfdump, correctly identifies that Atom[0].form is unsupported.
+# As a result, the hashdata cannot be read.
+
+ .section __TEXT,__text,regular,pure_instructions
+ .file 1 "basic.c"
+ .comm _i,4,2 ## @i
+ .comm _j,4,2 ## @j
+ .section __DWARF,__debug_str,regular,debug
+Linfo_string:
+ .asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
+ .asciz "basic.c" ## string offset=42
+ .asciz "/Users/sgravani/Development/tests" ## string offset=50
+ .asciz "i" ## string offset=84
+ .asciz "int" ## string offset=86
+ .asciz "j" ## string offset=90
+ .section __DWARF,__debug_info,regular,debug
+Lsection_info:
+ .section __DWARF,__apple_names,regular,debug
+Lnames_begin:
+ .long 1212240712 ## Header Magic
+ .short 1 ## Header Version
+ .short 0 ## Header Hash Function
+ .long 2 ## Header Bucket Count
+ .long 2 ## Header Hash Count
+ .long 12 ## Header Data Length
+ .long 0 ## HeaderData Die Offset Base
+ .long 1 ## HeaderData Atom Count
+ .short 1 ## DW_ATOM_die_offset
+ .short 400 ## DW_FORM_data4 -- error: unsupported form; failed to read HashData
+ .long 0 ## Bucket 0
+ .long 1 ## Bucket 1
+ .long 177678 ## Hash in Bucket 0
+ .long 177679 ## Hash in Bucket 1
+ .long LNames0-Lnames_begin ## Offset in Bucket 0
+ .long LNames1-Lnames_begin ## Offset in Bucket 1
+LNames0:
+ .long 84 ## i
+ .long 1 ## Num DIEs
+ .long 30
+ .long 0
+LNames1:
+ .long 90 ## j
+ .long 1 ## Num DIEs
+ .long 58
+ .long 0
+
+.subsections_via_symbols
+ .section __DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0:
diff --git a/test/tools/llvm-dwarfdump/X86/apple_names_verify_num_atoms.s b/test/tools/llvm-dwarfdump/X86/apple_names_verify_num_atoms.s
new file mode 100644
index 00000000000..dffb39c20f0
--- /dev/null
+++ b/test/tools/llvm-dwarfdump/X86/apple_names_verify_num_atoms.s
@@ -0,0 +1,59 @@
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | not llvm-dwarfdump -verify - \
+# RUN: | FileCheck %s
+
+# CHECK: Verifying .apple_names...
+# CHECK-NEXT: error: no atoms; failed to read HashData
+
+# This test is meant to verify that the -verify option
+# in llvm-dwarfdump, correctly identifies that there is not Atom.
+# As a result, the hashdata cannot be read.
+
+ .section __TEXT,__text,regular,pure_instructions
+ .file 1 "basic.c"
+ .comm _i,4,2 ## @i
+ .comm _j,4,2 ## @j
+ .section __DWARF,__debug_str,regular,debug
+Linfo_string:
+ .asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
+ .asciz "basic.c" ## string offset=42
+ .asciz "/Users/sgravani/Development/tests" ## string offset=50
+ .asciz "i" ## string offset=84
+ .asciz "int" ## string offset=86
+ .asciz "j" ## string offset=90
+
+ .section __DWARF,__debug_info,regular,debug
+Lsection_info:
+ .section __DWARF,__apple_names,regular,debug
+Lnames_begin:
+ .long 1212240712 ## Header Magic
+ .short 1 ## Header Version
+ .short 0 ## Header Hash Function
+ .long 2 ## Header Bucket Count
+ .long 2 ## Header Hash Count
+ .long 12 ## Header Data Length
+ .long 0 ## HeaderData Die Offset Base
+ .long 0 ## HeaderData Atom Count -- error: no atoms; failed to read HashData
+ .short 1 ## DW_ATOM_die_offset
+ .short 6 ## DW_FORM_data4
+ .long 0 ## Bucket 0
+ .long 1 ## Bucket 1
+ .long 177678 ## Hash in Bucket 0
+ .long 177679 ## Hash in Bucket 1
+ .long LNames0-Lnames_begin ## Offset in Bucket 0
+ .long LNames1-Lnames_begin ## Offset in Bucket 1
+LNames0:
+ .long 84 ## i
+ .long 1 ## Num DIEs
+ .long 30
+ .long 0
+LNames1:
+ .long 90 ## j
+ .long 1 ## Num DIEs
+ .long 58
+ .long 0
+
+.subsections_via_symbols
+ .section __DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0:
diff --git a/test/tools/llvm-dwarfdump/X86/no_apple_names_verify.s b/test/tools/llvm-dwarfdump/X86/no_apple_names_verify.s
new file mode 100644
index 00000000000..76606bd40ad
--- /dev/null
+++ b/test/tools/llvm-dwarfdump/X86/no_apple_names_verify.s
@@ -0,0 +1,33 @@
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | llvm-dwarfdump -verify - \
+# RUN: | FileCheck %s
+
+# CHECK-NOT: Verifying .apple_names...
+
+# This test is meant to verify that the -verify option
+# in llvm-dwarfdump doesn't produce any .apple_names related
+# output when there's no such section in the object.
+# The test was manually modified to exclude the
+# .apple_names section from the apple_names_verify_num_atoms.s
+# test file in the same directory.
+
+ .section __TEXT,__text,regular,pure_instructions
+ .file 1 "basic.c"
+ .comm _i,4,2 ## @i
+ .comm _j,4,2 ## @j
+ .section __DWARF,__debug_str,regular,debug
+Linfo_string:
+ .asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
+ .asciz "basic.c" ## string offset=42
+ .asciz "/Users/sgravani/Development/tests" ## string offset=50
+ .asciz "i" ## string offset=84
+ .asciz "int" ## string offset=86
+ .asciz "j" ## string offset=90
+
+ .section __DWARF,__debug_info,regular,debug
+Lsection_info:
+
+.subsections_via_symbols
+ .section __DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0:
diff --git a/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s b/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s
deleted file mode 100644
index 472ff71794c..00000000000
--- a/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s
+++ /dev/null
@@ -1,174 +0,0 @@
-# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
-# RUN: | not llvm-dwarfdump -verify - \
-# RUN: | FileCheck %s
-
-# CHECK-NOT: Verifying .apple_names...
-
-# This test is meant to verify that the -verify option
-# in llvm-dwarfdump doesn't produce any .apple_names related
-# output when there's no such section int he object.
-# The test was manually modified to exclude the
-# .apple_names section from the apple_names_verify_buckets.s
-# test file in the same directory.
-
- .section __TEXT,__text,regular,pure_instructions
- .file 1 "basic.c"
- .comm _i,4,2 ## @i
- .section __DWARF,__debug_str,regular,debug
-Linfo_string:
- .asciz "basic.c" ## string offset=42
- .asciz "i" ## string offset=84
- .asciz "int" ## string offset=86
- .section __DWARF,__debug_loc,regular,debug
-Lsection_debug_loc:
- .section __DWARF,__debug_abbrev,regular,debug
-Lsection_abbrev:
- .byte 1 ## Abbreviation Code
- .byte 17 ## DW_TAG_compile_unit
- .byte 1 ## DW_CHILDREN_yes
- .byte 37 ## DW_AT_producer
- .byte 14 ## DW_FORM_strp
- .byte 19 ## DW_AT_language
- .byte 5 ## DW_FORM_data2
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 16 ## DW_AT_stmt_list
- .byte 23 ## DW_FORM_sec_offset
- .byte 27 ## DW_AT_comp_dir
- .byte 14 ## DW_FORM_strp
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 2 ## Abbreviation Code
- .byte 52 ## DW_TAG_variable
- .byte 0 ## DW_CHILDREN_no
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 73 ## DW_AT_type
- .byte 19 ## DW_FORM_ref4
- .byte 63 ## DW_AT_external
- .byte 25 ## DW_FORM_flag_present
- .byte 58 ## DW_AT_decl_file
- .byte 11 ## DW_FORM_data1
- .byte 59 ## DW_AT_decl_line
- .byte 11 ## DW_FORM_data1
- .byte 2 ## DW_AT_location
- .byte 24 ## DW_FORM_exprloc
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 3 ## Abbreviation Code
- .byte 36 ## DW_TAG_base_type
- .byte 0 ## DW_CHILDREN_no
- .byte 3 ## DW_AT_name
- .byte 14 ## DW_FORM_strp
- .byte 62 ## DW_AT_encoding
- .byte 11 ## DW_FORM_data1
- .byte 11 ## DW_AT_byte_size
- .byte 11 ## DW_FORM_data1
- .byte 0 ## EOM(1)
- .byte 0 ## EOM(2)
- .byte 0 ## EOM(3)
- .section __DWARF,__debug_info,regular,debug
-Lsection_info:
-Lcu_begin0:
- .long 55 ## Length of Unit
- .short 4 ## DWARF version number
-Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
- .long Lset0
- .byte 8 ## Address Size (in bytes)
- .byte 1 ## Abbrev [1] 0xb:0x30 DW_TAG_compile_unit
- .long 0 ## DW_AT_producer
- .short 12 ## DW_AT_language
- .long 42 ## DW_AT_name
-Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
- .long Lset1
- .long 50 ## DW_AT_comp_dir
- .byte 2 ## Abbrev [2] 0x1e:0x15 DW_TAG_variable
- .long 84 ## DW_AT_name
- .long 51 ## DW_AT_type
- ## DW_AT_external
- .byte 1 ## DW_AT_decl_file
- .byte 1 ## DW_AT_decl_line
- .byte 9 ## DW_AT_location
- .byte 3
- .quad _i
- .byte 3 ## Abbrev [3] 0x33:0x7 DW_TAG_base_type
- .long 86 ## DW_AT_name
- .byte 5 ## DW_AT_encoding
- .byte 4 ## DW_AT_byte_size
- .byte 0 ## End Of Children Mark
- .section __DWARF,__debug_ranges,regular,debug
-Ldebug_range:
- .section __DWARF,__debug_macinfo,regular,debug
-Ldebug_macinfo:
-Lcu_macro_begin0:
- .byte 0 ## End Of Macro List Mark
- .section __DWARF,__apple_objc,regular,debug
-Lobjc_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
- .section __DWARF,__apple_namespac,regular,debug
-Lnamespac_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
- .section __DWARF,__apple_types,regular,debug
-Ltypes_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 1 ## Header Hash Count
- .long 20 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 3 ## HeaderData Atom Count
- .short 1 ## DW_ATOM_die_offset
- .short 6 ## DW_FORM_data4
- .short 3 ## DW_ATOM_die_tag
- .short 5 ## DW_FORM_data2
- .short 4 ## DW_ATOM_type_flags
- .short 11 ## DW_FORM_data1
- .long 0 ## Bucket 0
- .long 193495088 ## Hash in Bucket 0
- .long Ltypes0-Ltypes_begin ## Offset in Bucket 0
-Ltypes0:
- .long 86 ## int
- .long 1 ## Num DIEs
- .long 51
- .short 36
- .byte 0
- .long 0
- .section __DWARF,__apple_exttypes,regular,debug
-Lexttypes_begin:
- .long 1212240712 ## Header Magic
- .short 1 ## Header Version
- .short 0 ## Header Hash Function
- .long 1 ## Header Bucket Count
- .long 0 ## Header Hash Count
- .long 12 ## Header Data Length
- .long 0 ## HeaderData Die Offset Base
- .long 1 ## HeaderData Atom Count
- .short 7 ## DW_ATOM_ext_types
- .short 6 ## DW_FORM_data4
- .long -1 ## Bucket 0
-
-.subsections_via_symbols
- .section __DWARF,__debug_line,regular,debug
-Lsection_line:
-Lline_table_start0: