aboutsummaryrefslogtreecommitdiff
path: root/lldb
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@google.com>2021-04-15 17:17:04 -0700
committerCaroline Tice <cmtice@google.com>2021-04-15 17:17:44 -0700
commit042668d092bb585e526023027faee8d28f968a76 (patch)
tree5c310bb3d9a56496f806d77038275f41d4995892 /lldb
parentImplemented [[clang::musttail]] attribute for guaranteed tail calls. (diff)
downloadllvm-project-042668d092bb585e526023027faee8d28f968a76.tar.gz
llvm-project-042668d092bb585e526023027faee8d28f968a76.tar.bz2
llvm-project-042668d092bb585e526023027faee8d28f968a76.zip
Revert "[LLDB] Use path relative to binary for finding .dwo files."
This reverts commit b241f3cb292d0ba1ad5a33b3bbd4a8a3a9c909dc. Test case is breaking windows builder.
Diffstat (limited to 'lldb')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp7
-rw-r--r--lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s417
2 files changed, 0 insertions, 424 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index da170383405f..3a04f429c7c7 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1651,13 +1651,6 @@ SymbolFileDWARF::GetDwoSymbolFileForCompileUnit(
return nullptr;
dwo_file.SetFile(comp_dir, FileSpec::Style::native);
- if (dwo_file.IsRelative()) {
- // if DW_AT_comp_dir is relative, it should be relative to the location
- // of the executable, not to the location from which the debugger was
- // launched.
- dwo_file.PrependPathComponent(
- m_objfile_sp->GetFileSpec().GetDirectory().GetStringRef());
- }
FileSystem::Instance().Resolve(dwo_file);
dwo_file.AppendPathComponent(dwo_name);
}
diff --git a/lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s b/lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
deleted file mode 100644
index cc05434261e4..000000000000
--- a/lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
+++ /dev/null
@@ -1,417 +0,0 @@
-# Test to verify LLDB searches for dwos with relative paths relative to the
-# binary location, not relative to LLDB's launch location.
-
-# RUN: llvm-mc --filetype=obj --triple x86_64-pc-linux %s -o %t.o
-# RUN: llvm-objcopy --split-dwo=%T/dwo-relative-path.dwo %t.o
-
-# RUN: cd ../..
-
-# RUN: %lldb %t.o -o "target var x" -b 2>&1 | FileCheck %s
-
-# CHECK: x = 0
-
- .text
- .file "dwo-relative-path.cpp"
- .file 0 "." "dwo-relative-path.cpp" md5 0xadc61d242247514c5d402d62db34b825
- .globl main # -- Begin function main
- .p2align 4, 0x90
- .type main,@function
-main: # @main
-.Lfunc_begin0:
- .loc 0 14 0 # dwo-relative-path.cpp:14:0
- .cfi_startproc
-# %bb.0: # %entry
- pushq %rbp
- .cfi_def_cfa_offset 16
- .cfi_offset %rbp, -16
- movq %rsp, %rbp
- .cfi_def_cfa_register %rbp
- movl $0, -4(%rbp)
- movl %edi, -8(%rbp)
- movq %rsi, -16(%rbp)
-.Ltmp0:
- .loc 0 15 8 prologue_end # dwo-relative-path.cpp:15:8
- movw .L__const.main.y, %ax
- movw %ax, -19(%rbp)
- movb .L__const.main.y+2, %al
- movb %al, -17(%rbp)
- .loc 0 17 14 # dwo-relative-path.cpp:17:14
- movsbl -19(%rbp), %eax
- .loc 0 17 27 is_stmt 0 # dwo-relative-path.cpp:17:27
- movsbl -18(%rbp), %ecx
- .loc 0 17 19 # dwo-relative-path.cpp:17:19
- addl %ecx, %eax
- .loc 0 17 5 # dwo-relative-path.cpp:17:5
- addl x, %eax
- movl %eax, x
- .loc 0 19 3 is_stmt 1 # dwo-relative-path.cpp:19:3
- xorl %eax, %eax
- popq %rbp
- .cfi_def_cfa %rsp, 8
- retq
-.Ltmp1:
-.Lfunc_end0:
- .size main, .Lfunc_end0-main
- .cfi_endproc
- # -- End function
- .type x,@object # @x
- .data
- .globl x
- .p2align 2
-x:
- .long 10 # 0xa
- .size x, 4
-
- .type .L__const.main.y,@object # @__const.main.y
- .section .rodata,"a",@progbits
-.L__const.main.y:
- .ascii "abc"
- .size .L__const.main.y, 3
-
- .section .debug_abbrev,"",@progbits
- .byte 1 # Abbreviation Code
- .byte 74 # DW_TAG_skeleton_unit
- .byte 0 # DW_CHILDREN_no
- .byte 16 # DW_AT_stmt_list
- .byte 23 # DW_FORM_sec_offset
- .byte 114 # DW_AT_str_offsets_base
- .byte 23 # DW_FORM_sec_offset
- .byte 27 # DW_AT_comp_dir
- .byte 37 # DW_FORM_strx1
- .ascii "\264B" # DW_AT_GNU_pubnames
- .byte 25 # DW_FORM_flag_present
- .byte 118 # DW_AT_dwo_name
- .byte 37 # DW_FORM_strx1
- .byte 17 # DW_AT_low_pc
- .byte 27 # DW_FORM_addrx
- .byte 18 # DW_AT_high_pc
- .byte 6 # DW_FORM_data4
- .byte 115 # DW_AT_addr_base
- .byte 23 # DW_FORM_sec_offset
- .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 5 # DWARF version number
- .byte 4 # DWARF Unit Type
- .byte 8 # Address Size (in bytes)
- .long .debug_abbrev # Offset Into Abbrev. Section
- .quad 3752513468363206953
- .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
- .long .Lline_table_start0 # DW_AT_stmt_list
- .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
- .byte 0 # DW_AT_comp_dir
- # DW_AT_GNU_pubnames
- .byte 1 # DW_AT_dwo_name
- .byte 1 # DW_AT_low_pc
- .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
- .long .Laddr_table_base0 # DW_AT_addr_base
-.Ldebug_info_end0:
- .section .debug_str_offsets,"",@progbits
- .long 12 # Length of String Offsets Set
- .short 5
- .short 0
-.Lstr_offsets_base0:
- .section .debug_str,"MS",@progbits,1
-.Lskel_string0:
- .asciz "." # string offset=0
-.Lskel_string1:
- .asciz "dwo-relative-path.dwo" # string offset=2
- .section .debug_str_offsets,"",@progbits
- .long .Lskel_string0
- .long .Lskel_string1
- .section .debug_str_offsets.dwo,"e",@progbits
- .long 48 # Length of String Offsets Set
- .short 5
- .short 0
- .section .debug_str.dwo,"eMS",@progbits,1
-.Linfo_string0:
- .asciz "x" # string offset=0
-.Linfo_string1:
- .asciz "int" # string offset=2
-.Linfo_string2:
- .asciz "main" # string offset=6
-.Linfo_string3:
- .asciz "argc" # string offset=11
-.Linfo_string4:
- .asciz "argv" # string offset=16
-.Linfo_string5:
- .asciz "char" # string offset=21
-.Linfo_string6:
- .asciz "y" # string offset=26
-.Linfo_string7:
- .asciz "__ARRAY_SIZE_TYPE__" # string offset=28
-.Linfo_string8:
- .asciz "clang version 13.0.0 (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 6666e0d7a29c639df7a1652b6d3bf16f28edd45a)" # string offset=48
-.Linfo_string9:
- .asciz "dwo-relative-path.cpp" # string offset=184
-.Linfo_string10:
- .asciz "dwo-relative-path.dwo" # string offset=206
- .section .debug_str_offsets.dwo,"e",@progbits
- .long 0
- .long 2
- .long 6
- .long 11
- .long 16
- .long 21
- .long 26
- .long 28
- .long 48
- .long 184
- .long 206
- .section .debug_info.dwo,"e",@progbits
- .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
-.Ldebug_info_dwo_start0:
- .short 5 # DWARF version number
- .byte 5 # DWARF Unit Type
- .byte 8 # Address Size (in bytes)
- .long 0 # Offset Into Abbrev. Section
- .quad 3752513468363206953
- .byte 1 # Abbrev [1] 0x14:0x65 DW_TAG_compile_unit
- .byte 8 # DW_AT_producer
- .short 33 # DW_AT_language
- .byte 9 # DW_AT_name
- .byte 10 # DW_AT_dwo_name
- .byte 2 # Abbrev [2] 0x1a:0xb DW_TAG_variable
- .byte 0 # DW_AT_name
- .long 37 # DW_AT_type
- # DW_AT_external
- .byte 0 # DW_AT_decl_file
- .byte 11 # DW_AT_decl_line
- .byte 2 # DW_AT_location
- .byte 161
- .byte 0
- .byte 3 # Abbrev [3] 0x25:0x4 DW_TAG_base_type
- .byte 1 # DW_AT_name
- .byte 5 # DW_AT_encoding
- .byte 4 # DW_AT_byte_size
- .byte 4 # Abbrev [4] 0x29:0x31 DW_TAG_subprogram
- .byte 1 # DW_AT_low_pc
- .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
- .byte 1 # DW_AT_frame_base
- .byte 86
- .byte 2 # DW_AT_name
- .byte 0 # DW_AT_decl_file
- .byte 13 # DW_AT_decl_line
- .long 37 # DW_AT_type
- # DW_AT_external
- .byte 5 # Abbrev [5] 0x38:0xb DW_TAG_formal_parameter
- .byte 2 # DW_AT_location
- .byte 145
- .byte 120
- .byte 3 # DW_AT_name
- .byte 0 # DW_AT_decl_file
- .byte 13 # DW_AT_decl_line
- .long 37 # DW_AT_type
- .byte 5 # Abbrev [5] 0x43:0xb DW_TAG_formal_parameter
- .byte 2 # DW_AT_location
- .byte 145
- .byte 112
- .byte 4 # DW_AT_name
- .byte 0 # DW_AT_decl_file
- .byte 13 # DW_AT_decl_line
- .long 90 # DW_AT_type
- .byte 6 # Abbrev [6] 0x4e:0xb DW_TAG_variable
- .byte 2 # DW_AT_location
- .byte 145
- .byte 109
- .byte 6 # DW_AT_name
- .byte 0 # DW_AT_decl_file
- .byte 15 # DW_AT_decl_line
- .long 104 # DW_AT_type
- .byte 0 # End Of Children Mark
- .byte 7 # Abbrev [7] 0x5a:0x5 DW_TAG_pointer_type
- .long 95 # DW_AT_type
- .byte 7 # Abbrev [7] 0x5f:0x5 DW_TAG_pointer_type
- .long 100 # DW_AT_type
- .byte 3 # Abbrev [3] 0x64:0x4 DW_TAG_base_type
- .byte 5 # DW_AT_name
- .byte 6 # DW_AT_encoding
- .byte 1 # DW_AT_byte_size
- .byte 8 # Abbrev [8] 0x68:0xc DW_TAG_array_type
- .long 100 # DW_AT_type
- .byte 9 # Abbrev [9] 0x6d:0x6 DW_TAG_subrange_type
- .long 116 # DW_AT_type
- .byte 3 # DW_AT_count
- .byte 0 # End Of Children Mark
- .byte 10 # Abbrev [10] 0x74:0x4 DW_TAG_base_type
- .byte 7 # DW_AT_name
- .byte 8 # DW_AT_byte_size
- .byte 7 # DW_AT_encoding
- .byte 0 # End Of Children Mark
-.Ldebug_info_dwo_end0:
- .section .debug_abbrev.dwo,"e",@progbits
- .byte 1 # Abbreviation Code
- .byte 17 # DW_TAG_compile_unit
- .byte 1 # DW_CHILDREN_yes
- .byte 37 # DW_AT_producer
- .byte 37 # DW_FORM_strx1
- .byte 19 # DW_AT_language
- .byte 5 # DW_FORM_data2
- .byte 3 # DW_AT_name
- .byte 37 # DW_FORM_strx1
- .byte 118 # DW_AT_dwo_name
- .byte 37 # DW_FORM_strx1
- .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 37 # DW_FORM_strx1
- .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 37 # DW_FORM_strx1
- .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 4 # Abbreviation Code
- .byte 46 # DW_TAG_subprogram
- .byte 1 # DW_CHILDREN_yes
- .byte 17 # DW_AT_low_pc
- .byte 27 # DW_FORM_addrx
- .byte 18 # DW_AT_high_pc
- .byte 6 # DW_FORM_data4
- .byte 64 # DW_AT_frame_base
- .byte 24 # DW_FORM_exprloc
- .byte 3 # DW_AT_name
- .byte 37 # DW_FORM_strx1
- .byte 58 # DW_AT_decl_file
- .byte 11 # DW_FORM_data1
- .byte 59 # DW_AT_decl_line
- .byte 11 # DW_FORM_data1
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 63 # DW_AT_external
- .byte 25 # DW_FORM_flag_present
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 5 # Abbreviation Code
- .byte 5 # DW_TAG_formal_parameter
- .byte 0 # DW_CHILDREN_no
- .byte 2 # DW_AT_location
- .byte 24 # DW_FORM_exprloc
- .byte 3 # DW_AT_name
- .byte 37 # DW_FORM_strx1
- .byte 58 # DW_AT_decl_file
- .byte 11 # DW_FORM_data1
- .byte 59 # DW_AT_decl_line
- .byte 11 # DW_FORM_data1
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 6 # Abbreviation Code
- .byte 52 # DW_TAG_variable
- .byte 0 # DW_CHILDREN_no
- .byte 2 # DW_AT_location
- .byte 24 # DW_FORM_exprloc
- .byte 3 # DW_AT_name
- .byte 37 # DW_FORM_strx1
- .byte 58 # DW_AT_decl_file
- .byte 11 # DW_FORM_data1
- .byte 59 # DW_AT_decl_line
- .byte 11 # DW_FORM_data1
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 7 # Abbreviation Code
- .byte 15 # DW_TAG_pointer_type
- .byte 0 # DW_CHILDREN_no
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 8 # Abbreviation Code
- .byte 1 # DW_TAG_array_type
- .byte 1 # DW_CHILDREN_yes
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 9 # Abbreviation Code
- .byte 33 # DW_TAG_subrange_type
- .byte 0 # DW_CHILDREN_no
- .byte 73 # DW_AT_type
- .byte 19 # DW_FORM_ref4
- .byte 55 # DW_AT_count
- .byte 11 # DW_FORM_data1
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 10 # Abbreviation Code
- .byte 36 # DW_TAG_base_type
- .byte 0 # DW_CHILDREN_no
- .byte 3 # DW_AT_name
- .byte 37 # DW_FORM_strx1
- .byte 11 # DW_AT_byte_size
- .byte 11 # DW_FORM_data1
- .byte 62 # DW_AT_encoding
- .byte 11 # DW_FORM_data1
- .byte 0 # EOM(1)
- .byte 0 # EOM(2)
- .byte 0 # EOM(3)
- .section .debug_addr,"",@progbits
- .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
-.Ldebug_addr_start0:
- .short 5 # DWARF version number
- .byte 8 # Address size
- .byte 0 # Segment selector size
-.Laddr_table_base0:
- .quad x
- .quad .Lfunc_begin0
-.Ldebug_addr_end0:
- .section .debug_gnu_pubnames,"",@progbits
- .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
-.LpubNames_start0:
- .short 2 # DWARF Version
- .long .Lcu_begin0 # Offset of Compilation Unit Info
- .long 40 # Compilation Unit Length
- .long 41 # DIE offset
- .byte 48 # Attributes: FUNCTION, EXTERNAL
- .asciz "main" # External Name
- .long 26 # DIE offset
- .byte 32 # Attributes: VARIABLE, EXTERNAL
- .asciz "x" # External Name
- .long 0 # End Mark
-.LpubNames_end0:
- .section .debug_gnu_pubtypes,"",@progbits
- .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
-.LpubTypes_start0:
- .short 2 # DWARF Version
- .long .Lcu_begin0 # Offset of Compilation Unit Info
- .long 40 # Compilation Unit Length
- .long 37 # DIE offset
- .byte 144 # Attributes: TYPE, STATIC
- .asciz "int" # External Name
- .long 100 # DIE offset
- .byte 144 # Attributes: TYPE, STATIC
- .asciz "char" # External Name
- .long 0 # End Mark
-.LpubTypes_end0:
- .ident "clang version 13.0.0 (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 6666e0d7a29c639df7a1652b6d3bf16f28edd45a)"
- .section ".note.GNU-stack","",@progbits
- .addrsig
- .addrsig_sym x
- .section .debug_line,"",@progbits
-.Lline_table_start0: