Author: Caroline Tice
Date: 2021-04-15T17:17:44-07:00
New Revision: 042668d092bb585e526023027faee8d28f968a76

URL: 
https://github.com/llvm/llvm-project/commit/042668d092bb585e526023027faee8d28f968a76
DIFF: 
https://github.com/llvm/llvm-project/commit/042668d092bb585e526023027faee8d28f968a76.diff

LOG: Revert "[LLDB] Use path relative to binary for finding .dwo files."

This reverts commit b241f3cb292d0ba1ad5a33b3bbd4a8a3a9c909dc.

Test case is breaking windows builder.

Added: 
    

Modified: 
    lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Removed: 
    lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s


################################################################################
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:


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to