1# RUN: llvm-mc -triple=x86_64-pc-linux -filetype=obj %s > %t
2# RUN: %lldb %t -o "image lookup -v -s f1" -o exit | FileCheck %s
3
4# CHECK:  Function: id = {0x7fffffff0000003c}, name = "f1", range = [0x0000000000000000-0x0000000000000001)
5# CHECK:    Blocks: id = {0x7fffffff0000003c}, range = [0x00000000-0x00000001)
6
7
8        .text
9        .globl  f1
10        .type   f1,@function
11f1:
12        nop
13.Lfunc_end0:
14        .size   f1, .Lfunc_end0-f1
15                                        # -- End function
16        .section        .debug_str,"MS",@progbits,1
17.Lproducer:
18        .asciz  "Hand-written DWARF"
19.Lf1:
20        .asciz  "f1"
21.Le1:
22        .asciz  "e1"
23
24        .section        .debug_abbrev,"",@progbits
25        .byte   1                       # Abbreviation Code
26        .byte   17                      # DW_TAG_compile_unit
27        .byte   1                       # DW_CHILDREN_yes
28        .byte   37                      # DW_AT_producer
29        .byte   14                      # DW_FORM_strp
30        .byte   17                      # DW_AT_low_pc
31        .byte   1                       # DW_FORM_addr
32        .byte   18                      # DW_AT_high_pc
33        .byte   6                       # DW_FORM_data4
34        .byte   0                       # EOM(1)
35        .byte   0                       # EOM(2)
36        .byte   2                       # Abbreviation Code
37        .byte   46                      # DW_TAG_subprogram
38        .byte   0                       # DW_CHILDREN_no
39        .byte   17                      # DW_AT_low_pc
40        .byte   1                       # DW_FORM_addr
41        .byte   18                      # DW_AT_high_pc
42        .byte   6                       # DW_FORM_data4
43        .byte   3                       # DW_AT_name
44        .byte   14                      # DW_FORM_strp
45        .byte   0                       # EOM(1)
46        .byte   0                       # EOM(2)
47        .byte   3                       # Abbreviation Code
48        .byte   65                      # DW_TAG_type_unit
49        .byte   1                       # DW_CHILDREN_yes
50        .byte   0                       # EOM(1)
51        .byte   0                       # EOM(2)
52        .byte   5                       # Abbreviation Code
53        .byte   4                       # DW_TAG_enumeration_type
54        .byte   0                       # DW_CHILDREN_no
55        .byte   3                       # DW_AT_name
56        .byte   14                      # DW_FORM_strp
57        .byte   0                       # EOM(1)
58        .byte   0                       # EOM(2)
59        .byte   0                       # EOM(3)
60
61        .section        .debug_info,"",@progbits
62.Ltu_begin0:
63        .long   .Ltu_end0-.Ltu_start0   # Length of Unit
64.Ltu_start0:
65        .short  5                       # DWARF version number
66        .byte   2                       # DWARF Unit Type
67        .byte   8                       # Address Size (in bytes)
68        .long   .debug_abbrev           # Offset Into Abbrev. Section
69        .quad   47                      # Type Signature
70        .long   .Ltype-.Ltu_begin0      # Type DIE Offset
71        .byte   3                       # Abbrev [1] 0x18:0x1d DW_TAG_type_unit
72.Ltype:
73        .byte   5                       # Abbrev [5] 0x2e:0x9 DW_TAG_enumeration_type
74        .long   .Le1                    # DW_AT_name
75        .byte   0                       # End Of Children Mark
76.Ltu_end0:
77
78.Lcu_begin0:
79        .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
80.Ldebug_info_start0:
81        .short  5                       # DWARF version number
82        .byte   1                       # DWARF Unit Type
83        .byte   8                       # Address Size (in bytes)
84        .long   .debug_abbrev           # Offset Into Abbrev. Section
85        .byte   1                       # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit
86        .long   .Lproducer              # DW_AT_producer
87        .quad   f1                      # DW_AT_low_pc
88        .long   .Lfunc_end0-f1          # DW_AT_high_pc
89        .byte   2                       # Abbrev [2] 0x2b:0x37 DW_TAG_subprogram
90        .quad   f1                      # DW_AT_low_pc
91        .long   .Lfunc_end0-f1          # DW_AT_high_pc
92        .long   .Lf1                    # DW_AT_name
93        .byte   0                       # End Of Children Mark
94.Ldebug_info_end0:
95