summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core')
-rw-r--r--lldb/source/Core/ConnectionFileDescriptor.cpp35
-rw-r--r--lldb/source/Core/Debugger.cpp46
-rw-r--r--lldb/source/Core/Module.cpp3
-rw-r--r--lldb/source/Core/ModuleList.cpp42
4 files changed, 63 insertions, 63 deletions
diff --git a/lldb/source/Core/ConnectionFileDescriptor.cpp b/lldb/source/Core/ConnectionFileDescriptor.cpp
index e5b27bc8624..ce306c90e4d 100644
--- a/lldb/source/Core/ConnectionFileDescriptor.cpp
+++ b/lldb/source/Core/ConnectionFileDescriptor.cpp
@@ -459,6 +459,41 @@ ConnectionFileDescriptor::NamedSocketAccept (const char *socket_name, Error *err
}
ConnectionStatus
+ConnectionFileDescriptor::NamedSocketConnect (const char *socket_name, Error *error_ptr)
+{
+ Close (m_fd, NULL);
+ m_is_socket = true;
+
+ // Open the socket that was passed in as an option
+ struct sockaddr_un saddr_un;
+ m_fd = ::socket (AF_UNIX, SOCK_STREAM, 0);
+ if (m_fd == -1)
+ {
+ if (error_ptr)
+ error_ptr->SetErrorToErrno();
+ return eConnectionStatusError;
+ }
+
+ saddr_un.sun_family = AF_UNIX;
+ ::strncpy(saddr_un.sun_path, socket_name, sizeof(saddr_un.sun_path) - 1);
+ saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0';
+#if defined(__APPLE__) || defined(__FreeBSD__)
+ saddr_un.sun_len = SUN_LEN (&saddr_un);
+#endif
+
+ if (::connect (m_fd, (struct sockaddr *)&saddr_un, SUN_LEN (&saddr_un)) < 0)
+ {
+ if (error_ptr)
+ error_ptr->SetErrorToErrno();
+ Close (m_fd, NULL);
+ return eConnectionStatusError;
+ }
+ if (error_ptr)
+ error_ptr->Clear();
+ return eConnectionStatusSuccess;
+}
+
+ConnectionStatus
ConnectionFileDescriptor::SocketListen (uint16_t listen_port_num, Error *error_ptr)
{
lldb_private::LogIfAnyCategoriesSet (LIBLLDB_LOG_CONNECTION,
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index ca0dde920bd..073986ac3a9 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -229,7 +229,6 @@ Debugger::Debugger () :
m_listener ("lldb.Debugger"),
m_source_manager (),
m_command_interpreter_ap (new CommandInterpreter (*this, eScriptLanguageDefault, false)),
- m_exe_ctx (),
m_input_readers (),
m_input_reader_data ()
{
@@ -556,51 +555,6 @@ Debugger::ActivateInputReader (const InputReaderSP &reader_sp)
}
}
-void
-Debugger::UpdateExecutionContext (ExecutionContext *override_context)
-{
- m_exe_ctx.Clear();
-
- if (override_context != NULL)
- {
- m_exe_ctx.target = override_context->target;
- m_exe_ctx.process = override_context->process;
- m_exe_ctx.thread = override_context->thread;
- m_exe_ctx.frame = override_context->frame;
- }
- else
- {
- TargetSP target_sp (GetSelectedTarget());
- if (target_sp)
- {
- m_exe_ctx.target = target_sp.get();
- m_exe_ctx.process = target_sp->GetProcessSP().get();
- if (m_exe_ctx.process && m_exe_ctx.process->IsAlive() && !m_exe_ctx.process->IsRunning())
- {
- m_exe_ctx.thread = m_exe_ctx.process->GetThreadList().GetSelectedThread().get();
- if (m_exe_ctx.thread == NULL)
- {
- m_exe_ctx.thread = m_exe_ctx.process->GetThreadList().GetThreadAtIndex(0).get();
- // If we didn't have a selected thread, select one here.
- if (m_exe_ctx.thread != NULL)
- m_exe_ctx.process->GetThreadList().SetSelectedThreadByID(m_exe_ctx.thread->GetID());
- }
- if (m_exe_ctx.thread)
- {
- m_exe_ctx.frame = m_exe_ctx.thread->GetSelectedFrame().get();
- if (m_exe_ctx.frame == NULL)
- {
- m_exe_ctx.frame = m_exe_ctx.thread->GetStackFrameAtIndex (0).get();
- // If we didn't have a selected frame select one here.
- if (m_exe_ctx.frame != NULL)
- m_exe_ctx.thread->SetSelectedFrame(m_exe_ctx.frame);
- }
- }
- }
- }
- }
-}
-
DebuggerSP
Debugger::FindDebuggerWithID (lldb::user_id_t id)
{
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 7ceff588d16..0b314651a89 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -28,6 +28,7 @@ Module::Module(const FileSpec& file_spec, const ArchSpec& arch, const ConstStrin
m_file (file_spec),
m_platform_file(),
m_object_name (),
+ m_object_offset (object_offset),
m_objfile_ap (),
m_symfile_ap (),
m_ast (),
@@ -534,7 +535,7 @@ Module::GetObjectFile()
m_did_load_objfile = true;
Timer scoped_timer(__PRETTY_FUNCTION__,
"Module::GetObjectFile () module = %s", GetFileSpec().GetFilename().AsCString(""));
- m_objfile_ap.reset(ObjectFile::FindPlugin(this, &m_file, 0, m_file.GetByteSize()));
+ m_objfile_ap.reset(ObjectFile::FindPlugin(this, &m_file, m_object_offset, m_file.GetByteSize()));
}
return m_objfile_ap.get();
}
diff --git a/lldb/source/Core/ModuleList.cpp b/lldb/source/Core/ModuleList.cpp
index e2e0aa2a075..18f3bbf5bc7 100644
--- a/lldb/source/Core/ModuleList.cpp
+++ b/lldb/source/Core/ModuleList.cpp
@@ -63,36 +63,46 @@ ModuleList::~ModuleList()
void
ModuleList::Append (ModuleSP &module_sp)
{
- Mutex::Locker locker(m_modules_mutex);
- m_modules.push_back(module_sp);
+ if (module_sp)
+ {
+ Mutex::Locker locker(m_modules_mutex);
+ m_modules.push_back(module_sp);
+ }
}
bool
ModuleList::AppendIfNeeded (ModuleSP &module_sp)
{
- Mutex::Locker locker(m_modules_mutex);
- collection::iterator pos, end = m_modules.end();
- for (pos = m_modules.begin(); pos != end; ++pos)
+ if (module_sp)
{
- if (pos->get() == module_sp.get())
- return false; // Already in the list
+ Mutex::Locker locker(m_modules_mutex);
+ collection::iterator pos, end = m_modules.end();
+ for (pos = m_modules.begin(); pos != end; ++pos)
+ {
+ if (pos->get() == module_sp.get())
+ return false; // Already in the list
+ }
+ // Only push module_sp on the list if it wasn't already in there.
+ m_modules.push_back(module_sp);
+ return true;
}
- // Only push module_sp on the list if it wasn't already in there.
- m_modules.push_back(module_sp);
- return true;
+ return false;
}
bool
ModuleList::Remove (ModuleSP &module_sp)
{
- Mutex::Locker locker(m_modules_mutex);
- collection::iterator pos, end = m_modules.end();
- for (pos = m_modules.begin(); pos != end; ++pos)
+ if (module_sp)
{
- if (pos->get() == module_sp.get())
+ Mutex::Locker locker(m_modules_mutex);
+ collection::iterator pos, end = m_modules.end();
+ for (pos = m_modules.begin(); pos != end; ++pos)
{
- m_modules.erase (pos);
- return true;
+ if (pos->get() == module_sp.get())
+ {
+ m_modules.erase (pos);
+ return true;
+ }
}
}
return false;
OpenPOWER on IntegriCloud