debug_aranges-empty-section.s 2.45 KB
# Test that an empty .debug_aranges section doesn't confuse (or crash) us.

# REQUIRES: x86

# RUN: llvm-mc %s -triple x86_64-pc-linux -filetype=obj >%t
# RUN: %lldb %t -o "breakpoint set -n f" -b | FileCheck %s

# CHECK: Breakpoint 1: where = {{.*}}`f, address = 0x0000000000000047

	.text
	.globl	f                       # -- Begin function f
	.type	f,@function
        .rept 0x47
        nop
        .endr
f:                                      # @f
.Lfunc_begin0:
	retq
.Lfunc_end0:
	.size	f, .Lfunc_end0-f
                                        # -- End function
	.section	.debug_str,"MS",@progbits,1
.Linfo_string3:
	.asciz	"f"                     # string offset=83
	.section	.debug_abbrev,"",@progbits
	.byte	1                       # Abbreviation Code
	.byte	17                      # DW_TAG_compile_unit
	.byte	1                       # DW_CHILDREN_yes
	.byte	17                      # DW_AT_low_pc
	.byte	1                       # DW_FORM_addr
	.byte	18                      # DW_AT_high_pc
	.byte	6                       # DW_FORM_data4
	.byte	0                       # EOM(1)
	.byte	0                       # EOM(2)
	.byte	2                       # Abbreviation Code
	.byte	46                      # DW_TAG_subprogram
	.byte	0                       # DW_CHILDREN_no
	.byte	17                      # DW_AT_low_pc
	.byte	1                       # DW_FORM_addr
	.byte	18                      # DW_AT_high_pc
	.byte	6                       # DW_FORM_data4
	.byte	3                       # DW_AT_name
	.byte	14                      # DW_FORM_strp
	.byte	0                       # EOM(1)
	.byte	0                       # EOM(2)
	.byte	0                       # EOM(3)
	.section	.debug_info,"",@progbits
.Lcu_begin0:
	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
	.short	4                       # DWARF version number
	.long	.debug_abbrev           # Offset Into Abbrev. Section
	.byte	8                       # Address Size (in bytes)
	.byte	1                       # Abbrev [1] 0xb:0x35 DW_TAG_compile_unit
	.quad	.Lfunc_begin0           # DW_AT_low_pc
	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
	.byte	2                       # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram
	.quad	.Lfunc_begin0           # DW_AT_low_pc
	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
	.long	.Linfo_string3          # DW_AT_name
	.byte	0                       # End Of Children Mark
.Ldebug_info_end0:

	.section	".note.GNU-stack","",@progbits
	.section	.debug_aranges,"",@progbits