[lldb/DWARF] Fix dwp search path in the separate-debug-file case
The convention is that the dwp file name is derived from the name of the file holding the executable code, even if the linked portion of the debug info is elsewhere (objcopy --only-keep-debug).
This commit is contained in:
		
							parent
							
								
									c008716417
								
							
						
					
					
						commit
						c9c09ef836
					
				| 
						 | 
				
			
			@ -3880,7 +3880,7 @@ const std::shared_ptr<SymbolFileDWARFDwo> &SymbolFileDWARF::GetDwpSymbolFile() {
 | 
			
		|||
    ModuleSpec module_spec;
 | 
			
		||||
    module_spec.GetFileSpec() = m_objfile_sp->GetFileSpec();
 | 
			
		||||
    module_spec.GetSymbolFileSpec() =
 | 
			
		||||
        FileSpec(m_objfile_sp->GetFileSpec().GetPath() + ".dwp");
 | 
			
		||||
        FileSpec(m_objfile_sp->GetModule()->GetFileSpec().GetPath() + ".dwp");
 | 
			
		||||
 | 
			
		||||
    FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
 | 
			
		||||
    FileSpec dwp_filespec =
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,6 +126,7 @@ add_lldb_test_dependency(
 | 
			
		|||
  lli
 | 
			
		||||
  llvm-config
 | 
			
		||||
  llvm-dwarfdump
 | 
			
		||||
  llvm-dwp
 | 
			
		||||
  llvm-nm
 | 
			
		||||
  llvm-mc
 | 
			
		||||
  llvm-objcopy
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
// REQUIRES: lld
 | 
			
		||||
 | 
			
		||||
// RUN: %clang -target x86_64-pc-linux -gsplit-dwarf -c %s -o %t.o
 | 
			
		||||
// RUN: ld.lld %t.o -o %t
 | 
			
		||||
// RUN: llvm-dwp %t.dwo -o %t.dwp
 | 
			
		||||
// RUN: rm %t.dwo
 | 
			
		||||
// RUN: llvm-objcopy --only-keep-debug %t %t.debug
 | 
			
		||||
// RUN: llvm-objcopy --strip-all --add-gnu-debuglink=%t.debug %t
 | 
			
		||||
// RUN: %lldb %t -o "target variable a" -b | FileCheck %s
 | 
			
		||||
 | 
			
		||||
// CHECK: (A) a = (x = 47)
 | 
			
		||||
 | 
			
		||||
struct A {
 | 
			
		||||
  int x = 47;
 | 
			
		||||
};
 | 
			
		||||
A a;
 | 
			
		||||
int main() {}
 | 
			
		||||
| 
						 | 
				
			
			@ -149,7 +149,7 @@ def use_support_substitutions(config):
 | 
			
		|||
        config.available_features.add('lld')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    support_tools = ['yaml2obj', 'obj2yaml', 'llvm-pdbutil',
 | 
			
		||||
    support_tools = ['yaml2obj', 'obj2yaml', 'llvm-dwp', 'llvm-pdbutil',
 | 
			
		||||
                     'llvm-mc', 'llvm-readobj', 'llvm-objdump',
 | 
			
		||||
                     'llvm-objcopy', 'lli']
 | 
			
		||||
    additional_tool_dirs += [config.lldb_tools_dir, config.llvm_tools_dir]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue