summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Host/Host.h2
-rw-r--r--lldb/include/lldb/Host/Symbols.h5
-rw-r--r--lldb/include/lldb/Target/Platform.h2
-rw-r--r--lldb/include/lldb/Target/UnixSignals.h1
-rw-r--r--lldb/source/Host/common/Host.cpp7
-rw-r--r--lldb/source/Host/common/Symbols.cpp9
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp2
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp6
-rw-r--r--lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp5
-rw-r--r--lldb/source/Target/Platform.cpp4
-rw-r--r--lldb/source/Target/UnixSignals.cpp7
-rw-r--r--lldb/unittests/Host/SymbolsTest.cpp9
12 files changed, 22 insertions, 37 deletions
diff --git a/lldb/include/lldb/Host/Host.h b/lldb/include/lldb/Host/Host.h
index 20446796114..deea80a7227 100644
--- a/lldb/include/lldb/Host/Host.h
+++ b/lldb/include/lldb/Host/Host.h
@@ -196,6 +196,8 @@ public:
static bool GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &proc_info);
+ static const lldb::UnixSignalsSP &GetUnixSignals();
+
/// Launch the process specified in launch_info. The monitoring callback in
/// launch_info must be set, and it will be called when the process
/// terminates.
diff --git a/lldb/include/lldb/Host/Symbols.h b/lldb/include/lldb/Host/Symbols.h
index 20120c80557..27bf05d2ef4 100644
--- a/lldb/include/lldb/Host/Symbols.h
+++ b/lldb/include/lldb/Host/Symbols.h
@@ -11,7 +11,6 @@
#include <stdint.h>
-#include "lldb/Core/FileSpecList.h"
#include "lldb/Utility/FileSpec.h"
namespace lldb_private {
@@ -36,9 +35,7 @@ public:
// Locating the file should happen only on the local computer or using the
// current computers global settings.
//----------------------------------------------------------------------
- static FileSpec
- LocateExecutableSymbolFile(const ModuleSpec &module_spec,
- const FileSpecList &default_search_paths);
+ static FileSpec LocateExecutableSymbolFile(const ModuleSpec &module_spec);
static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
const lldb_private::UUID *uuid,
diff --git a/lldb/include/lldb/Target/Platform.h b/lldb/include/lldb/Target/Platform.h
index 1bcf81339e8..f09a1a99ee4 100644
--- a/lldb/include/lldb/Target/Platform.h
+++ b/lldb/include/lldb/Target/Platform.h
@@ -689,7 +689,7 @@ public:
virtual const lldb::UnixSignalsSP &GetRemoteUnixSignals();
- lldb::UnixSignalsSP GetUnixSignals();
+ const lldb::UnixSignalsSP &GetUnixSignals();
//------------------------------------------------------------------
/// Locate a queue name given a thread's qaddr
diff --git a/lldb/include/lldb/Target/UnixSignals.h b/lldb/include/lldb/Target/UnixSignals.h
index 682f7d21e3a..4be59c4827f 100644
--- a/lldb/include/lldb/Target/UnixSignals.h
+++ b/lldb/include/lldb/Target/UnixSignals.h
@@ -22,7 +22,6 @@ namespace lldb_private {
class UnixSignals {
public:
static lldb::UnixSignalsSP Create(const ArchSpec &arch);
- static lldb::UnixSignalsSP CreateForHost();
//------------------------------------------------------------------
// Constructors and Destructors
diff --git a/lldb/source/Host/common/Host.cpp b/lldb/source/Host/common/Host.cpp
index 2906fe8a908..acdb92d4993 100644
--- a/lldb/source/Host/common/Host.cpp
+++ b/lldb/source/Host/common/Host.cpp
@@ -56,6 +56,7 @@
#include "lldb/Host/ProcessLauncher.h"
#include "lldb/Host/ThreadLauncher.h"
#include "lldb/Host/posix/ConnectionFileDescriptorPosix.h"
+#include "lldb/Target/UnixSignals.h"
#include "lldb/Utility/DataBufferLLVM.h"
#include "lldb/Utility/FileSpec.h"
#include "lldb/Utility/Log.h"
@@ -612,6 +613,12 @@ bool Host::OpenFileInExternalEditor(const FileSpec &file_spec,
#endif
+const UnixSignalsSP &Host::GetUnixSignals() {
+ static const auto s_unix_signals_sp =
+ UnixSignals::Create(HostInfo::GetArchitecture());
+ return s_unix_signals_sp;
+}
+
std::unique_ptr<Connection> Host::CreateDefaultConnection(llvm::StringRef url) {
#if defined(_WIN32)
if (url.startswith("file://"))
diff --git a/lldb/source/Host/common/Symbols.cpp b/lldb/source/Host/common/Symbols.cpp
index 136c828c639..3ea112abb70 100644
--- a/lldb/source/Host/common/Symbols.cpp
+++ b/lldb/source/Host/common/Symbols.cpp
@@ -7,10 +7,10 @@
//===----------------------------------------------------------------------===//
#include "lldb/Host/Symbols.h"
-#include "lldb/Core/ModuleList.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Symbol/ObjectFile.h"
+#include "lldb/Target/Target.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/DataBuffer.h"
#include "lldb/Utility/DataExtractor.h"
@@ -248,9 +248,7 @@ ModuleSpec Symbols::LocateExecutableObjectFile(const ModuleSpec &module_spec) {
// Keep "symbols.enable-external-lookup" description in sync with this function.
-FileSpec
-Symbols::LocateExecutableSymbolFile(const ModuleSpec &module_spec,
- const FileSpecList &default_search_paths) {
+FileSpec Symbols::LocateExecutableSymbolFile(const ModuleSpec &module_spec) {
FileSpec symbol_file_spec = module_spec.GetSymbolFileSpec();
if (symbol_file_spec.IsAbsolute() &&
FileSystem::Instance().Exists(symbol_file_spec))
@@ -258,7 +256,8 @@ Symbols::LocateExecutableSymbolFile(const ModuleSpec &module_spec,
const char *symbol_filename = symbol_file_spec.GetFilename().AsCString();
if (symbol_filename && symbol_filename[0]) {
- FileSpecList debug_file_search_paths = default_search_paths;
+ FileSpecList debug_file_search_paths(
+ Target::GetDefaultDebugFileSearchPaths());
// Add module directory.
FileSpec module_file_spec = module_spec.GetFileSpec();
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
index e19eb23ced5..808299120c3 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
@@ -398,7 +398,7 @@ GDBRemoteCommunicationServerPlatform::Handle_jSignalsInfo(
StringExtractorGDBRemote &packet) {
StructuredData::Array signal_array;
- lldb::UnixSignalsSP signals = UnixSignals::CreateForHost();
+ const auto &signals = Host::GetUnixSignals();
for (auto signo = signals->GetFirstSignalNumber();
signo != LLDB_INVALID_SIGNAL_NUMBER;
signo = signals->GetNextSignalNumber(signo)) {
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index da44f41636c..55beef0abc1 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -49,7 +49,6 @@
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/Language.h"
-#include "lldb/Target/Target.h"
#include "AppleDWARFIndex.h"
#include "DWARFASTParser.h"
@@ -3837,10 +3836,7 @@ SymbolFileDWARFDwp *SymbolFileDWARF::GetDwpSymbolFile() {
module_spec.GetFileSpec() = m_obj_file->GetFileSpec();
module_spec.GetSymbolFileSpec() =
FileSpec(m_obj_file->GetFileSpec().GetPath() + ".dwp");
-
- FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
- FileSpec dwp_filespec =
- Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
+ FileSpec dwp_filespec = Symbols::LocateExecutableSymbolFile(module_spec);
if (FileSystem::Instance().Exists(dwp_filespec)) {
m_dwp_symfile = SymbolFileDWARFDwp::Create(GetObjectFile()->GetModule(),
dwp_filespec);
diff --git a/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp b/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
index 3c5c738968c..3aed77b065b 100644
--- a/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
+++ b/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
@@ -17,7 +17,6 @@
#include "lldb/Host/Host.h"
#include "lldb/Host/Symbols.h"
#include "lldb/Symbol/ObjectFile.h"
-#include "lldb/Target/Target.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/Timer.h"
@@ -104,9 +103,7 @@ SymbolVendorELF::CreateInstance(const lldb::ModuleSP &module_sp,
FileSystem::Instance().Resolve(module_spec.GetFileSpec());
module_spec.GetSymbolFileSpec() = fspec;
module_spec.GetUUID() = uuid;
- FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
- FileSpec dsym_fspec =
- Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
+ FileSpec dsym_fspec = Symbols::LocateExecutableSymbolFile(module_spec);
if (dsym_fspec) {
DataBufferSP dsym_file_data_sp;
lldb::offset_t dsym_file_data_offset = 0;
diff --git a/lldb/source/Target/Platform.cpp b/lldb/source/Target/Platform.cpp
index 00da95572ee..a93913b25c8 100644
--- a/lldb/source/Target/Platform.cpp
+++ b/lldb/source/Target/Platform.cpp
@@ -1740,9 +1740,9 @@ const UnixSignalsSP &Platform::GetRemoteUnixSignals() {
return s_default_unix_signals_sp;
}
-UnixSignalsSP Platform::GetUnixSignals() {
+const UnixSignalsSP &Platform::GetUnixSignals() {
if (IsHost())
- return UnixSignals::CreateForHost();
+ return Host::GetUnixSignals();
return GetRemoteUnixSignals();
}
diff --git a/lldb/source/Target/UnixSignals.cpp b/lldb/source/Target/UnixSignals.cpp
index 970510367f0..fc08e8438c5 100644
--- a/lldb/source/Target/UnixSignals.cpp
+++ b/lldb/source/Target/UnixSignals.cpp
@@ -11,7 +11,6 @@
#include "Plugins/Process/Utility/LinuxSignals.h"
#include "Plugins/Process/Utility/MipsLinuxSignals.h"
#include "Plugins/Process/Utility/NetBSDSignals.h"
-#include "lldb/Host/HostInfo.h"
#include "lldb/Host/StringConvert.h"
#include "lldb/Utility/ArchSpec.h"
@@ -51,12 +50,6 @@ lldb::UnixSignalsSP UnixSignals::Create(const ArchSpec &arch) {
}
}
-lldb::UnixSignalsSP UnixSignals::CreateForHost() {
- static lldb::UnixSignalsSP s_unix_signals_sp =
- Create(HostInfo::GetArchitecture());
- return s_unix_signals_sp;
-}
-
//----------------------------------------------------------------------
// UnixSignals constructor
//----------------------------------------------------------------------
diff --git a/lldb/unittests/Host/SymbolsTest.cpp b/lldb/unittests/Host/SymbolsTest.cpp
index 60b79e2b40d..0fa556e1ddb 100644
--- a/lldb/unittests/Host/SymbolsTest.cpp
+++ b/lldb/unittests/Host/SymbolsTest.cpp
@@ -12,7 +12,6 @@
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Host/Symbols.h"
-#include "lldb/Target/Target.h"
using namespace lldb_private;
@@ -34,9 +33,7 @@ TEST_F(
SymbolsTest,
TerminateLocateExecutableSymbolFileForUnknownExecutableAndUnknownSymbolFile) {
ModuleSpec module_spec;
- FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
- FileSpec symbol_file_spec =
- Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
+ FileSpec symbol_file_spec = Symbols::LocateExecutableSymbolFile(module_spec);
EXPECT_TRUE(symbol_file_spec.GetFilename().IsEmpty());
}
@@ -46,8 +43,6 @@ TEST_F(SymbolsTest,
// using a GUID here because the symbol file shouldn't actually exist on disk
module_spec.GetSymbolFileSpec().SetFile(
"4A524676-B24B-4F4E-968A-551D465EBAF1.so", FileSpec::Style::native);
- FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
- FileSpec symbol_file_spec =
- Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
+ FileSpec symbol_file_spec = Symbols::LocateExecutableSymbolFile(module_spec);
EXPECT_TRUE(symbol_file_spec.GetFilename().IsEmpty());
}
OpenPOWER on IntegriCloud