OSDN Git Service

[lldb] Don't process symlinks deep inside DWARFUnit
authorPavel Labath <pavel@labath.sk>
Fri, 20 Dec 2019 15:34:55 +0000 (16:34 +0100)
committerPavel Labath <pavel@labath.sk>
Mon, 20 Jan 2020 12:05:00 +0000 (13:05 +0100)
commit27df2d9f556c3199601ecd1f15c1b37cd49ed9df
treecada9009dee336c4a37a218b7697aacf8ad6a7e2
parent9a3ff478235ccbda23df01a99c5a86eedba54cac
[lldb] Don't process symlinks deep inside DWARFUnit

Summary:
This code is handling debug info paths starting with /proc/self/cwd,
which is one of the mechanisms people use to obtain "relocatable" debug
info (the idea being that one starts the debugger with an appropriate
cwd and things "just work").

Instead of resolving the symlinks inside DWARFUnit, we can do the same
thing more elegantly by hooking into the existing Module path remapping
code. Since llvm::DWARFUnit does not support any similar functionality,
doing things this way is also a step towards unifying llvm and lldb
dwarf parsers.

Reviewers: JDevlieghere, aprantl, clayborg, jdoerfert

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D71770
lldb/include/lldb/Core/Module.h
lldb/include/lldb/Core/ModuleList.h
lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
lldb/source/Core/CoreProperties.td
lldb/source/Core/ModuleList.cpp
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFProperties.td