[Lldb-commits] [PATCH] D27380: [lldb] Update the check for Linux or FreeBSD in SymbolFileDWARF::FindFunctions.
Alexander Shaposhnikov via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 5 10:52:50 PST 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL288687: [lldb] Update the check for Linux or FreeBSD in SymbolFileDWARF::FindFunctions (authored by alexshap).
Changed prior to commit:
https://reviews.llvm.org/D27380?vs=80278&id=80295#toc
Repository:
rL LLVM
https://reviews.llvm.org/D27380
Files:
lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Index: lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
===================================================================
--- lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+++ lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
@@ -1513,8 +1513,14 @@
const uint32_t sub_type = subTypeFromElfHeader(header);
arch_spec.SetArchitecture(eArchTypeELF, header.e_machine, sub_type,
header.e_ident[EI_OSABI]);
- //
- // Validate if it is ok to remove GetOsFromOSABI
+
+ // Validate if it is ok to remove GetOsFromOSABI.
+ // Note, that now the OS is determined based on EI_OSABI flag and
+ // the info extracted from ELF notes (see RefineModuleDetailsFromNote).
+ // However in some cases that still might be not enough: for example
+ // a shared library might not have any notes at all
+ // and have EI_OSABI flag set to System V,
+ // as result the OS will be set to UnknownOS.
GetOsFromOSABI(header.e_ident[EI_OSABI], ostype);
spec_ostype = arch_spec.GetTriple().getOS();
assert(spec_ostype == ostype);
Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -2586,8 +2586,7 @@
if (sc_list.GetSize() == original_size) {
ArchSpec arch;
if (!parent_decl_ctx && GetObjectFile()->GetArchitecture(arch) &&
- (arch.GetTriple().isOSFreeBSD() || arch.GetTriple().isOSLinux() ||
- arch.GetMachine() == llvm::Triple::hexagon)) {
+ arch.GetTriple().isOSBinFormatELF()) {
SymbolContextList temp_sc_list;
FindFunctions(name, m_function_basename_index, include_inlines,
temp_sc_list);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27380.80295.patch
Type: text/x-patch
Size: 1910 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20161205/198db2b5/attachment-0001.bin>
More information about the lldb-commits
mailing list