diff options
Diffstat (limited to 'lldb/source/Core')
-rw-r--r-- | lldb/source/Core/ConnectionFileDescriptor.cpp | 35 | ||||
-rw-r--r-- | lldb/source/Core/Debugger.cpp | 46 | ||||
-rw-r--r-- | lldb/source/Core/Module.cpp | 3 | ||||
-rw-r--r-- | lldb/source/Core/ModuleList.cpp | 42 |
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; |