aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/Process
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/Process')
-rw-r--r--source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp32
-rw-r--r--source/Plugins/Process/Darwin/DarwinProcessLauncher.h5
-rw-r--r--source/Plugins/Process/Darwin/MachException.cpp26
-rw-r--r--source/Plugins/Process/Darwin/MachException.h12
-rw-r--r--source/Plugins/Process/Darwin/NativeProcessDarwin.cpp153
-rw-r--r--source/Plugins/Process/Darwin/NativeProcessDarwin.h107
-rw-r--r--source/Plugins/Process/Darwin/NativeThreadDarwin.cpp10
-rw-r--r--source/Plugins/Process/Darwin/NativeThreadDarwin.h12
-rw-r--r--source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp4
-rw-r--r--source/Plugins/Process/Darwin/NativeThreadListDarwin.h2
-rw-r--r--source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp100
-rw-r--r--source/Plugins/Process/FreeBSD/ProcessFreeBSD.h52
-rw-r--r--source/Plugins/Process/FreeBSD/ProcessMonitor.cpp38
-rw-r--r--source/Plugins/Process/FreeBSD/ProcessMonitor.h18
-rw-r--r--source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp2
-rw-r--r--source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp2
-rw-r--r--source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp2
-rw-r--r--source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp2
-rw-r--r--source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp2
-rw-r--r--source/Plugins/Process/Linux/NativeProcessLinux.cpp267
-rw-r--r--source/Plugins/Process/Linux/NativeProcessLinux.h87
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp63
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux.h38
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp119
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h44
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp115
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h44
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp97
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.h45
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp150
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h46
-rwxr-xr-xsource/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp99
-rw-r--r--source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h31
-rw-r--r--source/Plugins/Process/Linux/NativeThreadLinux.cpp49
-rw-r--r--source/Plugins/Process/Linux/NativeThreadLinux.h16
-rw-r--r--source/Plugins/Process/Linux/SingleStepCheck.cpp20
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp12
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h12
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp85
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h50
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp16
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp16
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp12
-rw-r--r--source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp12
-rw-r--r--source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp168
-rw-r--r--source/Plugins/Process/NetBSD/NativeProcessNetBSD.h67
-rw-r--r--source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp36
-rw-r--r--source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h24
-rw-r--r--source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp63
-rw-r--r--source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h27
-rw-r--r--source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp42
-rw-r--r--source/Plugins/Process/NetBSD/NativeThreadNetBSD.h10
-rw-r--r--source/Plugins/Process/Utility/DynamicRegisterInfo.cpp28
-rw-r--r--source/Plugins/Process/Utility/RegisterContextLLDB.cpp10
-rw-r--r--source/Plugins/Process/Utility/RegisterContextMemory.cpp10
-rw-r--r--source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp10
-rw-r--r--source/Plugins/Process/Utility/RegisterContextThreadMemory.h12
-rw-r--r--source/Plugins/Process/Utility/ThreadMemory.cpp12
-rw-r--r--source/Plugins/Process/Utility/ThreadMemory.h2
-rw-r--r--source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp4
-rw-r--r--source/Plugins/Process/Windows/Common/DebuggerThread.cpp22
-rw-r--r--source/Plugins/Process/Windows/Common/DebuggerThread.h6
-rw-r--r--source/Plugins/Process/Windows/Common/IDebugDelegate.h4
-rw-r--r--source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp2
-rw-r--r--source/Plugins/Process/Windows/Common/LocalDebugDelegate.h2
-rw-r--r--source/Plugins/Process/Windows/Common/ProcessWindows.cpp75
-rw-r--r--source/Plugins/Process/Windows/Common/ProcessWindows.h38
-rw-r--r--source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp2
-rw-r--r--source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp2
-rw-r--r--source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp2
-rw-r--r--source/Plugins/Process/elf-core/ProcessElfCore.cpp26
-rw-r--r--source/Plugins/Process/elf-core/ProcessElfCore.h14
-rw-r--r--source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp2
-rw-r--r--source/Plugins/Process/elf-core/ThreadElfCore.cpp12
-rw-r--r--source/Plugins/Process/elf-core/ThreadElfCore.h12
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp14
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h10
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp109
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h46
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp2
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h6
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp25
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h11
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp113
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h20
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp16
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h8
-rw-r--r--source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp4
-rw-r--r--source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp187
-rw-r--r--source/Plugins/Process/gdb-remote/ProcessGDBRemote.h78
-rw-r--r--source/Plugins/Process/mach-core/ProcessMachCore.cpp24
-rw-r--r--source/Plugins/Process/mach-core/ProcessMachCore.h12
-rw-r--r--source/Plugins/Process/minidump/MinidumpParser.cpp4
-rw-r--r--source/Plugins/Process/minidump/MinidumpParser.h2
-rw-r--r--source/Plugins/Process/minidump/MinidumpTypes.cpp24
-rw-r--r--source/Plugins/Process/minidump/MinidumpTypes.h6
-rw-r--r--source/Plugins/Process/minidump/ProcessMinidump.cpp18
-rw-r--r--source/Plugins/Process/minidump/ProcessMinidump.h14
98 files changed, 1829 insertions, 1796 deletions
diff --git a/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp b/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp
index feb7a11584f8..6845a36730c9 100644
--- a/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp
+++ b/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp
@@ -32,8 +32,8 @@
#include "lldb/Host/PseudoTerminal.h"
#include "lldb/Target/ProcessLaunchInfo.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
#include "CFBundle.h"
@@ -131,10 +131,10 @@ static bool ResolveExecutablePath(const char *path, char *resolved_path,
// TODO check if we have a general purpose fork and exec. We may be
// able to get rid of this entirely.
-static Error ForkChildForPTraceDebugging(const char *path, char const *argv[],
- char const *envp[], ::pid_t *pid,
- int *pty_fd) {
- Error error;
+static Status ForkChildForPTraceDebugging(const char *path, char const *argv[],
+ char const *envp[], ::pid_t *pid,
+ int *pty_fd) {
+ Status error;
if (!path || !argv || !envp || !pid || !pty_fd) {
error.SetErrorString("invalid arguments");
return error;
@@ -149,7 +149,7 @@ static Error ForkChildForPTraceDebugging(const char *path, char const *argv[],
*pid = static_cast<::pid_t>(pty.Fork(fork_error, sizeof(fork_error)));
if (*pid < 0) {
//--------------------------------------------------------------
- // Error during fork.
+ // Status during fork.
//--------------------------------------------------------------
*pid = static_cast<::pid_t>(LLDB_INVALID_PROCESS_ID);
error.SetErrorStringWithFormat("%s(): fork failed: %s", __FUNCTION__,
@@ -205,10 +205,10 @@ static Error ForkChildForPTraceDebugging(const char *path, char const *argv[],
return error;
}
-static Error
+static Status
CreatePosixSpawnFileAction(const FileAction &action,
posix_spawn_file_actions_t *file_actions) {
- Error error;
+ Status error;
// Log it.
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
@@ -270,11 +270,11 @@ CreatePosixSpawnFileAction(const FileAction &action,
return error;
}
-static Error PosixSpawnChildForPTraceDebugging(const char *path,
- ProcessLaunchInfo &launch_info,
- ::pid_t *pid,
- cpu_type_t *actual_cpu_type) {
- Error error;
+static Status PosixSpawnChildForPTraceDebugging(const char *path,
+ ProcessLaunchInfo &launch_info,
+ ::pid_t *pid,
+ cpu_type_t *actual_cpu_type) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (!pid) {
@@ -436,9 +436,9 @@ static Error PosixSpawnChildForPTraceDebugging(const char *path,
return error;
}
-Error LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd,
- LaunchFlavor *launch_flavor) {
- Error error;
+Status LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd,
+ LaunchFlavor *launch_flavor) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (!launch_flavor) {
diff --git a/source/Plugins/Process/Darwin/DarwinProcessLauncher.h b/source/Plugins/Process/Darwin/DarwinProcessLauncher.h
index d1af4d09f8b7..a0e8ce5cb9dc 100644
--- a/source/Plugins/Process/Darwin/DarwinProcessLauncher.h
+++ b/source/Plugins/Process/Darwin/DarwinProcessLauncher.h
@@ -39,8 +39,9 @@ namespace darwin_process_launcher {
/// @param[out] launch_flavor
/// Contains the launch flavor used when launching the process.
// =============================================================================
-Error LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd,
- lldb_private::process_darwin::LaunchFlavor *launch_flavor);
+Status
+LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd,
+ lldb_private::process_darwin::LaunchFlavor *launch_flavor);
} // darwin_process_launcher
} // lldb_private
diff --git a/source/Plugins/Process/Darwin/MachException.cpp b/source/Plugins/Process/Darwin/MachException.cpp
index 5a97a4b01be3..7d956dfc6506 100644
--- a/source/Plugins/Process/Darwin/MachException.cpp
+++ b/source/Plugins/Process/Darwin/MachException.cpp
@@ -23,9 +23,9 @@
// LLDB includes
#include "lldb/Target/UnixSignals.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/Stream.h"
using namespace lldb;
@@ -211,11 +211,11 @@ bool MachException::Data::GetStopInfo(struct ThreadStopInfo *stop_info,
return true;
}
-Error MachException::Message::Receive(mach_port_t port,
- mach_msg_option_t options,
- mach_msg_timeout_t timeout,
- mach_port_t notify_port) {
- Error error;
+Status MachException::Message::Receive(mach_port_t port,
+ mach_msg_option_t options,
+ mach_msg_timeout_t timeout,
+ mach_port_t notify_port) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
mach_msg_timeout_t mach_msg_timeout =
@@ -312,10 +312,10 @@ bool MachException::Message::CatchExceptionRaise(task_t task) {
return success;
}
-Error MachException::Message::Reply(::pid_t inferior_pid, task_t inferior_task,
- int signal) {
+Status MachException::Message::Reply(::pid_t inferior_pid, task_t inferior_task,
+ int signal) {
// Reply to the exception...
- Error error;
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
@@ -412,8 +412,8 @@ Error MachException::Message::Reply(::pid_t inferior_pid, task_t inferior_task,
#define LLDB_EXC_MASK (EXC_MASK_ALL & ~EXC_MASK_RESOURCE)
-Error MachException::PortInfo::Save(task_t task) {
- Error error;
+Status MachException::PortInfo::Save(task_t task) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
if (log)
@@ -471,8 +471,8 @@ Error MachException::PortInfo::Save(task_t task) {
return error;
}
-Error MachException::PortInfo::Restore(task_t task) {
- Error error;
+Status MachException::PortInfo::Restore(task_t task) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
diff --git a/source/Plugins/Process/Darwin/MachException.h b/source/Plugins/Process/Darwin/MachException.h
index ac8cd7030c55..2da6a36a921e 100644
--- a/source/Plugins/Process/Darwin/MachException.h
+++ b/source/Plugins/Process/Darwin/MachException.h
@@ -40,9 +40,9 @@ public:
thread_state_flavor_t flavors[EXC_TYPES_COUNT];
mach_msg_type_number_t count;
- Error Save(task_t task);
+ Status Save(task_t task);
- Error Restore(task_t task);
+ Status Restore(task_t task);
};
struct Data {
@@ -96,11 +96,11 @@ public:
bool CatchExceptionRaise(task_t task);
- Error Reply(::pid_t inferior_pid, task_t inferior_task, int signal);
+ Status Reply(::pid_t inferior_pid, task_t inferior_task, int signal);
- Error Receive(mach_port_t receive_port, mach_msg_option_t options,
- mach_msg_timeout_t timeout,
- mach_port_t notify_port = MACH_PORT_NULL);
+ Status Receive(mach_port_t receive_port, mach_msg_option_t options,
+ mach_msg_timeout_t timeout,
+ mach_port_t notify_port = MACH_PORT_NULL);
void Dump(Stream &stream) const;
diff --git a/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp b/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp
index 65ab12fe1adf..f6c8c78ccb73 100644
--- a/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp
+++ b/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp
@@ -53,13 +53,13 @@ struct hack_task_dyld_info {
// Public Static Methods
// -----------------------------------------------------------------------------
-Error NativeProcessProtocol::Launch(
+Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info,
NativeProcessProtocol::NativeDelegate &native_delegate, MainLoop &mainloop,
NativeProcessProtocolSP &native_process_sp) {
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
- Error error;
+ Status error;
// Verify the working directory is valid if one was specified.
FileSpec working_dir(launch_info.GetWorkingDirectory());
@@ -120,7 +120,7 @@ Error NativeProcessProtocol::Launch(
return error;
}
-Error NativeProcessProtocol::Attach(
+Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &native_process_sp) {
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
@@ -130,7 +130,7 @@ Error NativeProcessProtocol::Attach(
// Retrieve the architecture for the running process.
ArchSpec process_arch;
- Error error = ResolveProcessArchitecture(pid, process_arch);
+ Status error = ResolveProcessArchitecture(pid, process_arch);
if (!error.Success())
return error;
@@ -174,9 +174,9 @@ NativeProcessDarwin::~NativeProcessDarwin() {}
// Instance methods
// -----------------------------------------------------------------------------
-Error NativeProcessDarwin::FinalizeLaunch(LaunchFlavor launch_flavor,
- MainLoop &main_loop) {
- Error error;
+Status NativeProcessDarwin::FinalizeLaunch(LaunchFlavor launch_flavor,
+ MainLoop &main_loop) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
#if 0
@@ -261,7 +261,7 @@ Error NativeProcessDarwin::FinalizeLaunch(LaunchFlavor launch_flavor,
return error;
}
-Error NativeProcessDarwin::SaveExceptionPortInfo() {
+Status NativeProcessDarwin::SaveExceptionPortInfo() {
return m_exc_port_info.Save(m_task);
}
@@ -348,7 +348,7 @@ void *NativeProcessDarwin::DoExceptionThread() {
// polling is expensive. On devices, we need to minimize overhead caused
// by the process monitor.
uint32_t num_exceptions_received = 0;
- Error error;
+ Status error;
task_t task = m_task;
mach_msg_timeout_t periodic_timeout = 0;
@@ -550,8 +550,8 @@ void *NativeProcessDarwin::DoExceptionThread() {
return nullptr;
}
-Error NativeProcessDarwin::StartExceptionThread() {
- Error error;
+Status NativeProcessDarwin::StartExceptionThread() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (log)
log->Printf("NativeProcessDarwin::%s() called", __FUNCTION__);
@@ -640,7 +640,7 @@ Error NativeProcessDarwin::StartExceptionThread() {
}
lldb::addr_t
-NativeProcessDarwin::GetDYLDAllImageInfosAddress(Error &error) const {
+NativeProcessDarwin::GetDYLDAllImageInfosAddress(Status &error) const {
error.Clear();
struct hack_task_dyld_info dyld_info;
@@ -694,7 +694,7 @@ uint32_t NativeProcessDarwin::GetCPUType() const {
task_t NativeProcessDarwin::ExceptionMessageBundleComplete() {
// We have a complete bundle of exceptions for our child process.
- Error error;
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
std::lock_guard<std::recursive_mutex> locker(m_exception_messages_mutex);
@@ -737,7 +737,7 @@ task_t NativeProcessDarwin::ExceptionMessageBundleComplete() {
const addr_t info_array_count_addr = aii_addr + 4;
uint32_t info_array_count = 0;
size_t bytes_read = 0;
- Error read_error;
+ Status read_error;
read_error = ReadMemory(info_array_count_addr, // source addr
&info_array_count, // dest addr
4, // byte count
@@ -885,8 +885,8 @@ void NativeProcessDarwin::StartSTDIOThread() {
// TODO implement
}
-Error NativeProcessDarwin::StartWaitpidThread(MainLoop &main_loop) {
- Error error;
+Status NativeProcessDarwin::StartWaitpidThread(MainLoop &main_loop) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
// Strategy: create a thread that sits on waitpid(), waiting for the
@@ -973,7 +973,7 @@ void *NativeProcessDarwin::DoWaitpidThread() {
// Ensure we don't get CPU starved.
MaybeRaiseThreadPriority();
- Error error;
+ Status error;
int status = -1;
while (1) {
@@ -1038,9 +1038,9 @@ void *NativeProcessDarwin::DoWaitpidThread() {
return nullptr;
}
-Error NativeProcessDarwin::SendInferiorExitStatusToMainLoop(::pid_t pid,
- int status) {
- Error error;
+Status NativeProcessDarwin::SendInferiorExitStatusToMainLoop(::pid_t pid,
+ int status) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
size_t bytes_written = 0;
@@ -1069,8 +1069,8 @@ Error NativeProcessDarwin::SendInferiorExitStatusToMainLoop(::pid_t pid,
return error;
}
-Error NativeProcessDarwin::HandleWaitpidResult() {
- Error error;
+Status NativeProcessDarwin::HandleWaitpidResult() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
// Read the pid.
@@ -1126,7 +1126,7 @@ Error NativeProcessDarwin::HandleWaitpidResult() {
return error;
}
-task_t NativeProcessDarwin::TaskPortForProcessID(Error &error,
+task_t NativeProcessDarwin::TaskPortForProcessID(Status &error,
bool force) const {
if ((m_task == TASK_NULL) || force) {
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
@@ -1178,12 +1178,12 @@ task_t NativeProcessDarwin::TaskPortForProcessID(Error &error,
}
void NativeProcessDarwin::AttachToInferior(MainLoop &mainloop, lldb::pid_t pid,
- Error &error) {
+ Status &error) {
error.SetErrorString("TODO: implement");
}
-Error NativeProcessDarwin::PrivateResume() {
- Error error;
+Status NativeProcessDarwin::PrivateResume() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
std::lock_guard<std::recursive_mutex> locker(m_exception_messages_mutex);
@@ -1225,8 +1225,8 @@ Error NativeProcessDarwin::PrivateResume() {
return error;
}
-Error NativeProcessDarwin::ReplyToAllExceptions() {
- Error error;
+Status NativeProcessDarwin::ReplyToAllExceptions() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_VERBOSE));
TaskPortForProcessID(error);
@@ -1282,8 +1282,8 @@ Error NativeProcessDarwin::ReplyToAllExceptions() {
return error;
}
-Error NativeProcessDarwin::ResumeTask() {
- Error error;
+Status NativeProcessDarwin::ResumeTask() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
TaskPortForProcessID(error);
@@ -1364,9 +1364,10 @@ bool NativeProcessDarwin::IsExceptionPortValid() const {
return MACH_PORT_VALID(m_exception_port);
}
-Error NativeProcessDarwin::GetTaskBasicInfo(
- task_t task, struct task_basic_info *info) const {
- Error error;
+Status
+NativeProcessDarwin::GetTaskBasicInfo(task_t task,
+ struct task_basic_info *info) const {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
// Validate args.
@@ -1412,8 +1413,8 @@ Error NativeProcessDarwin::GetTaskBasicInfo(
return error;
}
-Error NativeProcessDarwin::SuspendTask() {
- Error error;
+Status NativeProcessDarwin::SuspendTask() {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (m_task == TASK_NULL) {
@@ -1432,8 +1433,8 @@ Error NativeProcessDarwin::SuspendTask() {
return error;
}
-Error NativeProcessDarwin::Resume(const ResumeActionList &resume_actions) {
- Error error;
+Status NativeProcessDarwin::Resume(const ResumeActionList &resume_actions) {
+ Status error;
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (log)
@@ -1461,74 +1462,74 @@ Error NativeProcessDarwin::Resume(const ResumeActionList &resume_actions) {
return error;
}
-Error NativeProcessDarwin::Halt() {
- Error error;
+Status NativeProcessDarwin::Halt() {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::Detach() {
- Error error;
+Status NativeProcessDarwin::Detach() {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::Signal(int signo) {
- Error error;
+Status NativeProcessDarwin::Signal(int signo) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::Interrupt() {
- Error error;
+Status NativeProcessDarwin::Interrupt() {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::Kill() {
- Error error;
+Status NativeProcessDarwin::Kill() {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) {
- Error error;
+Status NativeProcessDarwin::GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) {
- Error error;
+Status NativeProcessDarwin::ReadMemory(lldb::addr_t addr, void *buf,
+ size_t size, size_t &bytes_read) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
- size_t size,
- size_t &bytes_read) {
- Error error;
+Status NativeProcessDarwin::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
+ size_t size,
+ size_t &bytes_read) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::WriteMemory(lldb::addr_t addr, const void *buf,
- size_t size, size_t &bytes_written) {
- Error error;
+Status NativeProcessDarwin::WriteMemory(lldb::addr_t addr, const void *buf,
+ size_t size, size_t &bytes_written) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) {
- Error error;
+Status NativeProcessDarwin::AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::DeallocateMemory(lldb::addr_t addr) {
- Error error;
+Status NativeProcessDarwin::DeallocateMemory(lldb::addr_t addr) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
@@ -1543,25 +1544,25 @@ bool NativeProcessDarwin::GetArchitecture(ArchSpec &arch) const {
return false;
}
-Error NativeProcessDarwin::SetBreakpoint(lldb::addr_t addr, uint32_t size,
- bool hardware) {
- Error error;
+Status NativeProcessDarwin::SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
void NativeProcessDarwin::DoStopIDBumped(uint32_t newBumpId) {}
-Error NativeProcessDarwin::GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) {
- Error error;
+Status NativeProcessDarwin::GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
-Error NativeProcessDarwin::GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) {
- Error error;
+Status NativeProcessDarwin::GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) {
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
@@ -1569,10 +1570,10 @@ Error NativeProcessDarwin::GetFileLoadAddress(const llvm::StringRef &file_name,
// -----------------------------------------------------------------
// NativeProcessProtocol protected interface
// -----------------------------------------------------------------
-Error NativeProcessDarwin::GetSoftwareBreakpointTrapOpcode(
+Status NativeProcessDarwin::GetSoftwareBreakpointTrapOpcode(
size_t trap_opcode_size_hint, size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) {
- Error error;
+ Status error;
error.SetErrorString("TODO: implement");
return error;
}
diff --git a/source/Plugins/Process/Darwin/NativeProcessDarwin.h b/source/Plugins/Process/Darwin/NativeProcessDarwin.h
index 01fdd64b1273..2214bbc52ca4 100644
--- a/source/Plugins/Process/Darwin/NativeProcessDarwin.h
+++ b/source/Plugins/Process/Darwin/NativeProcessDarwin.h
@@ -37,7 +37,7 @@
#include "NativeThreadListDarwin.h"
namespace lldb_private {
-class Error;
+class Status;
class Scalar;
namespace process_darwin {
@@ -50,11 +50,11 @@ namespace process_darwin {
///
/// Changes in the inferior process state are broadcasted.
class NativeProcessDarwin : public NativeProcessProtocol {
- friend Error NativeProcessProtocol::Launch(
+ friend Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
- friend Error NativeProcessProtocol::Attach(
+ friend Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
@@ -64,34 +64,34 @@ public:
// -----------------------------------------------------------------
// NativeProcessProtocol Interface
// -----------------------------------------------------------------
- Error Resume(const ResumeActionList &resume_actions) override;
+ Status Resume(const ResumeActionList &resume_actions) override;
- Error Halt() override;
+ Status Halt() override;
- Error Detach() override;
+ Status Detach() override;
- Error Signal(int signo) override;
+ Status Signal(int signo) override;
- Error Interrupt() override;
+ Status Interrupt() override;
- Error Kill() override;
+ Status Kill() override;
- Error GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) override;
+ Status GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) override;
- Error ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemory(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
- size_t &bytes_written) override;
+ Status WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
+ size_t &bytes_written) override;
- Error AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) override;
+ Status AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) override;
- Error DeallocateMemory(lldb::addr_t addr) override;
+ Status DeallocateMemory(lldb::addr_t addr) override;
lldb::addr_t GetSharedLibraryInfoAddress() override;
@@ -99,15 +99,16 @@ public:
bool GetArchitecture(ArchSpec &arch) const override;
- Error SetBreakpoint(lldb::addr_t addr, uint32_t size, bool hardware) override;
+ Status SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) override;
void DoStopIDBumped(uint32_t newBumpId) override;
- Error GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) override;
+ Status GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) override;
- Error GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) override;
+ Status GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) override;
NativeThreadDarwinSP GetThreadByID(lldb::tid_t id);
@@ -116,9 +117,9 @@ public:
// -----------------------------------------------------------------
// Interface used by NativeRegisterContext-derived classes.
// -----------------------------------------------------------------
- static Error PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
- void *data = nullptr, size_t data_size = 0,
- long *result = nullptr);
+ static Status PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
+ void *data = nullptr, size_t data_size = 0,
+ long *result = nullptr);
bool SupportHardwareSingleStepping() const;
@@ -126,7 +127,7 @@ protected:
// -----------------------------------------------------------------
// NativeProcessProtocol protected interface
// -----------------------------------------------------------------
- Error
+ Status
GetSoftwareBreakpointTrapOpcode(size_t trap_opcode_size_hint,
size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) override;
@@ -236,19 +237,19 @@ private:
/// operations. Failure here will force termination of the
/// launched process and debugging session.
// -----------------------------------------------------------------
- Error FinalizeLaunch(LaunchFlavor launch_flavor, MainLoop &main_loop);
+ Status FinalizeLaunch(LaunchFlavor launch_flavor, MainLoop &main_loop);
- Error SaveExceptionPortInfo();
+ Status SaveExceptionPortInfo();
void ExceptionMessageReceived(const MachException::Message &message);
void MaybeRaiseThreadPriority();
- Error StartExceptionThread();
+ Status StartExceptionThread();
- Error SendInferiorExitStatusToMainLoop(::pid_t pid, int status);
+ Status SendInferiorExitStatusToMainLoop(::pid_t pid, int status);
- Error HandleWaitpidResult();
+ Status HandleWaitpidResult();
bool ProcessUsingSpringBoard() const;
@@ -258,7 +259,7 @@ private:
void *DoExceptionThread();
- lldb::addr_t GetDYLDAllImageInfosAddress(Error &error) const;
+ lldb::addr_t GetDYLDAllImageInfosAddress(Status &error) const;
static uint32_t GetCPUTypeForLocalProcess(::pid_t pid);
@@ -268,25 +269,25 @@ private:
void StartSTDIOThread();
- Error StartWaitpidThread(MainLoop &main_loop);
+ Status StartWaitpidThread(MainLoop &main_loop);
static void *WaitpidThread(void *arg);
void *DoWaitpidThread();
- task_t TaskPortForProcessID(Error &error, bool force = false) const;
+ task_t TaskPortForProcessID(Status &error, bool force = false) const;
/// Attaches to an existing process. Forms the
/// implementation of Process::DoAttach.
- void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Error &error);
+ void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Status &error);
- ::pid_t Attach(lldb::pid_t pid, Error &error);
+ ::pid_t Attach(lldb::pid_t pid, Status &error);
- Error PrivateResume();
+ Status PrivateResume();
- Error ReplyToAllExceptions();
+ Status ReplyToAllExceptions();
- Error ResumeTask();
+ Status ResumeTask();
bool IsTaskValid() const;
@@ -296,11 +297,11 @@ private:
bool IsExceptionPortValid() const;
- Error GetTaskBasicInfo(task_t task, struct task_basic_info *info) const;
+ Status GetTaskBasicInfo(task_t task, struct task_basic_info *info) const;
- Error SuspendTask();
+ Status SuspendTask();
- static Error SetDefaultPtraceOpts(const lldb::pid_t);
+ static Status SetDefaultPtraceOpts(const lldb::pid_t);
static void *MonitorThread(void *baton);
@@ -319,7 +320,7 @@ private:
void MonitorSignal(const siginfo_t &info, NativeThreadDarwin &thread,
bool exited);
- Error SetupSoftwareSingleStepping(NativeThreadDarwin &thread);
+ Status SetupSoftwareSingleStepping(NativeThreadDarwin &thread);
#if 0
static ::ProcessMessage::CrashReason
@@ -341,22 +342,22 @@ private:
NativeThreadDarwinSP AddThread(lldb::tid_t thread_id);
- Error GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
+ Status GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
- Error FixupBreakpointPCAsNeeded(NativeThreadDarwin &thread);
+ Status FixupBreakpointPCAsNeeded(NativeThreadDarwin &thread);
/// Writes a siginfo_t structure corresponding to the given thread
/// ID to the memory region pointed to by @p siginfo.
- Error GetSignalInfo(lldb::tid_t tid, void *siginfo);
+ Status GetSignalInfo(lldb::tid_t tid, void *siginfo);
/// Writes the raw event message code (vis-a-vis PTRACE_GETEVENTMSG)
/// corresponding to the given thread ID to the memory pointed to
/// by @p message.
- Error GetEventMessage(lldb::tid_t tid, unsigned long *message);
+ Status GetEventMessage(lldb::tid_t tid, unsigned long *message);
void NotifyThreadDeath(lldb::tid_t tid);
- Error Detach(lldb::tid_t tid);
+ Status Detach(lldb::tid_t tid);
// This method is requests a stop on all threads which are still
// running. It sets up a deferred delegate notification, which will
@@ -370,8 +371,8 @@ private:
// Resume the given thread, optionally passing it the given signal.
// The type of resume operation (continue, single-step) depends on
// the state parameter.
- Error ResumeThread(NativeThreadDarwin &thread, lldb::StateType state,
- int signo);
+ Status ResumeThread(NativeThreadDarwin &thread, lldb::StateType state,
+ int signo);
void ThreadWasCreated(NativeThreadDarwin &thread);
diff --git a/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp b/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp
index b04f9053136b..07398ab7b678 100644
--- a/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp
+++ b/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp
@@ -94,15 +94,15 @@ NativeRegisterContextSP NativeThreadDarwin::GetRegisterContext() {
return NativeRegisterContextSP();
}
-Error NativeThreadDarwin::SetWatchpoint(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, bool hardware) {
- Error error;
+Status NativeThreadDarwin::SetWatchpoint(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags, bool hardware) {
+ Status error;
error.SetErrorString("not yet implemented");
return error;
}
-Error NativeThreadDarwin::RemoveWatchpoint(lldb::addr_t addr) {
- Error error;
+Status NativeThreadDarwin::RemoveWatchpoint(lldb::addr_t addr) {
+ Status error;
error.SetErrorString("not yet implemented");
return error;
}
diff --git a/source/Plugins/Process/Darwin/NativeThreadDarwin.h b/source/Plugins/Process/Darwin/NativeThreadDarwin.h
index b8d9089e673e..f66f8fe8738c 100644
--- a/source/Plugins/Process/Darwin/NativeThreadDarwin.h
+++ b/source/Plugins/Process/Darwin/NativeThreadDarwin.h
@@ -58,10 +58,10 @@ public:
NativeRegisterContextSP GetRegisterContext() override;
- Error SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
- bool hardware) override;
+ Status SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
+ bool hardware) override;
- Error RemoveWatchpoint(lldb::addr_t addr) override;
+ Status RemoveWatchpoint(lldb::addr_t addr) override;
// -----------------------------------------------------------------
// New methods that are fine for others to call.
@@ -75,11 +75,11 @@ private:
/// Resumes the thread. If @p signo is anything but
/// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread.
- Error Resume(uint32_t signo);
+ Status Resume(uint32_t signo);
/// Single steps the thread. If @p signo is anything but
/// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread.
- Error SingleStep(uint32_t signo);
+ Status SingleStep(uint32_t signo);
bool NotifyException(MachException::Data &exc);
@@ -117,7 +117,7 @@ private:
void SetExited();
- Error RequestStop();
+ Status RequestStop();
// -------------------------------------------------------------------------
/// Return the mach thread port number for this thread.
diff --git a/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp b/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp
index fa06fb8b2a5f..7d44adeec375 100644
--- a/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp
+++ b/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp
@@ -20,8 +20,8 @@
#include <sys/sysctl.h>
// LLDB includes
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/Stream.h"
#include "lldb/lldb-enumerations.h"
@@ -343,7 +343,7 @@ uint32_t NativeThreadListDarwin::UpdateThreadList(NativeProcessDarwin &process,
mach_msg_type_number_t thread_list_count = 0;
task_t task = process.GetTask();
- Error error;
+ Status error;
auto mach_err = ::task_threads(task, &thread_list, &thread_list_count);
error.SetError(mach_err, eErrorTypeMachKernel);
if (error.Fail()) {
diff --git a/source/Plugins/Process/Darwin/NativeThreadListDarwin.h b/source/Plugins/Process/Darwin/NativeThreadListDarwin.h
index 2b194bcc1537..7b59afb96e95 100644
--- a/source/Plugins/Process/Darwin/NativeThreadListDarwin.h
+++ b/source/Plugins/Process/Darwin/NativeThreadListDarwin.h
@@ -123,7 +123,7 @@ protected:
typedef collection::iterator iterator;
typedef collection::const_iterator const_iterator;
- // Consider having this return an lldb_private::Error.
+ // Consider having this return an lldb_private::Status.
uint32_t UpdateThreadList(NativeProcessDarwin &process, bool update,
collection *num_threads = nullptr);
diff --git a/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp b/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
index 93d294fd040a..3046150e3246 100644
--- a/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
+++ b/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
@@ -111,8 +111,8 @@ uint32_t ProcessFreeBSD::GetPluginVersion() { return 1; }
void ProcessFreeBSD::Terminate() {}
-Error ProcessFreeBSD::DoDetach(bool keep_stopped) {
- Error error;
+Status ProcessFreeBSD::DoDetach(bool keep_stopped) {
+ Status error;
if (keep_stopped) {
error.SetErrorString("Detaching with keep_stopped true is not currently "
"supported on FreeBSD.");
@@ -127,7 +127,7 @@ Error ProcessFreeBSD::DoDetach(bool keep_stopped) {
return error;
}
-Error ProcessFreeBSD::DoResume() {
+Status ProcessFreeBSD::DoResume() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
SetPrivateState(eStateRunning);
@@ -147,7 +147,7 @@ Error ProcessFreeBSD::DoResume() {
m_monitor->ThreadSuspend(*t_pos, false);
do_step = true;
if (software_single_step) {
- Error error = SetupSoftwareSingleStepping(*t_pos);
+ Status error = SetupSoftwareSingleStepping(*t_pos);
if (error.Fail())
return error;
}
@@ -168,7 +168,7 @@ Error ProcessFreeBSD::DoResume() {
else
m_monitor->Resume(GetID(), m_resume_signo);
- return Error();
+ return Status();
}
bool ProcessFreeBSD::UpdateThreadList(ThreadList &old_thread_list,
@@ -209,7 +209,7 @@ bool ProcessFreeBSD::UpdateThreadList(ThreadList &old_thread_list,
return true;
}
-Error ProcessFreeBSD::WillResume() {
+Status ProcessFreeBSD::WillResume() {
m_resume_signo = 0;
m_suspend_tids.clear();
m_run_tids.clear();
@@ -293,9 +293,10 @@ bool ProcessFreeBSD::CanDebug(lldb::TargetSP target_sp,
return true;
}
-Error ProcessFreeBSD::DoAttachToProcessWithID(
- lldb::pid_t pid, const ProcessAttachInfo &attach_info) {
- Error error;
+Status
+ProcessFreeBSD::DoAttachToProcessWithID(lldb::pid_t pid,
+ const ProcessAttachInfo &attach_info) {
+ Status error;
assert(m_monitor == NULL);
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
@@ -343,8 +344,8 @@ Error ProcessFreeBSD::DoAttachToProcessWithID(
return error;
}
-Error ProcessFreeBSD::WillLaunch(Module *module) {
- Error error;
+Status ProcessFreeBSD::WillLaunch(Module *module) {
+ Status error;
return error;
}
@@ -366,8 +367,9 @@ ProcessFreeBSD::GetFileSpec(const lldb_private::FileAction *file_action,
return file_spec;
}
-Error ProcessFreeBSD::DoLaunch(Module *module, ProcessLaunchInfo &launch_info) {
- Error error;
+Status ProcessFreeBSD::DoLaunch(Module *module,
+ ProcessLaunchInfo &launch_info) {
+ Status error;
assert(m_monitor == NULL);
FileSpec working_dir = launch_info.GetWorkingDirectory();
@@ -456,8 +458,8 @@ addr_t ProcessFreeBSD::GetImageInfoAddress() {
return LLDB_INVALID_ADDRESS;
}
-Error ProcessFreeBSD::DoHalt(bool &caused_stop) {
- Error error;
+Status ProcessFreeBSD::DoHalt(bool &caused_stop) {
+ Status error;
if (IsStopped()) {
caused_stop = false;
@@ -470,8 +472,8 @@ Error ProcessFreeBSD::DoHalt(bool &caused_stop) {
return error;
}
-Error ProcessFreeBSD::DoSignal(int signal) {
- Error error;
+Status ProcessFreeBSD::DoSignal(int signal) {
+ Status error;
if (kill(GetID(), signal))
error.SetErrorToErrno();
@@ -479,8 +481,8 @@ Error ProcessFreeBSD::DoSignal(int signal) {
return error;
}
-Error ProcessFreeBSD::DoDestroy() {
- Error error;
+Status ProcessFreeBSD::DoDestroy() {
+ Status error;
if (!HasExited()) {
assert(m_monitor);
@@ -513,7 +515,7 @@ void ProcessFreeBSD::DoDidExec() {
target->GetArchitecture());
FileSpecList executable_search_paths(
Target::GetDefaultExecutableSearchPaths());
- Error error = platform_sp->ResolveExecutable(
+ Status error = platform_sp->ResolveExecutable(
exe_module_spec, exe_module_sp,
executable_search_paths.GetSize() ? &executable_search_paths : NULL);
if (!error.Success())
@@ -589,19 +591,19 @@ bool ProcessFreeBSD::IsAlive() {
}
size_t ProcessFreeBSD::DoReadMemory(addr_t vm_addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
assert(m_monitor);
return m_monitor->ReadMemory(vm_addr, buf, size, error);
}
size_t ProcessFreeBSD::DoWriteMemory(addr_t vm_addr, const void *buf,
- size_t size, Error &error) {
+ size_t size, Status &error) {
assert(m_monitor);
return m_monitor->WriteMemory(vm_addr, buf, size, error);
}
addr_t ProcessFreeBSD::DoAllocateMemory(size_t size, uint32_t permissions,
- Error &error) {
+ Status &error) {
addr_t allocated_addr = LLDB_INVALID_ADDRESS;
unsigned prot = 0;
@@ -626,8 +628,8 @@ addr_t ProcessFreeBSD::DoAllocateMemory(size_t size, uint32_t permissions,
return allocated_addr;
}
-Error ProcessFreeBSD::DoDeallocateMemory(lldb::addr_t addr) {
- Error error;
+Status ProcessFreeBSD::DoDeallocateMemory(lldb::addr_t addr) {
+ Status error;
MMapMap::iterator pos = m_addr_to_mmap_size.find(addr);
if (pos != m_addr_to_mmap_size.end() &&
InferiorCallMunmap(this, addr, pos->second))
@@ -691,16 +693,16 @@ ProcessFreeBSD::GetSoftwareBreakpointTrapOpcode(BreakpointSite *bp_site) {
return opcode_size;
}
-Error ProcessFreeBSD::EnableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessFreeBSD::EnableBreakpointSite(BreakpointSite *bp_site) {
return EnableSoftwareBreakpoint(bp_site);
}
-Error ProcessFreeBSD::DisableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessFreeBSD::DisableBreakpointSite(BreakpointSite *bp_site) {
return DisableSoftwareBreakpoint(bp_site);
}
-Error ProcessFreeBSD::EnableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessFreeBSD::EnableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
if (wp) {
user_id_t watchID = wp->GetID();
addr_t addr = wp->GetLoadAddress();
@@ -754,8 +756,8 @@ Error ProcessFreeBSD::EnableWatchpoint(Watchpoint *wp, bool notify) {
return error;
}
-Error ProcessFreeBSD::DisableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessFreeBSD::DisableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
if (wp) {
user_id_t watchID = wp->GetID();
addr_t addr = wp->GetLoadAddress();
@@ -797,8 +799,8 @@ Error ProcessFreeBSD::DisableWatchpoint(Watchpoint *wp, bool notify) {
return error;
}
-Error ProcessFreeBSD::GetWatchpointSupportInfo(uint32_t &num) {
- Error error;
+Status ProcessFreeBSD::GetWatchpointSupportInfo(uint32_t &num) {
+ Status error;
std::lock_guard<std::recursive_mutex> guard(m_thread_list.GetMutex());
FreeBSDThread *thread = static_cast<FreeBSDThread *>(
m_thread_list.GetThreadAtIndex(0, false).get());
@@ -809,8 +811,8 @@ Error ProcessFreeBSD::GetWatchpointSupportInfo(uint32_t &num) {
return error;
}
-Error ProcessFreeBSD::GetWatchpointSupportInfo(uint32_t &num, bool &after) {
- Error error = GetWatchpointSupportInfo(num);
+Status ProcessFreeBSD::GetWatchpointSupportInfo(uint32_t &num, bool &after) {
+ Status error = GetWatchpointSupportInfo(num);
// Watchpoints trigger and halt the inferior after
// the corresponding instruction has been executed.
after = true;
@@ -855,7 +857,7 @@ ByteOrder ProcessFreeBSD::GetByteOrder() const {
return m_byte_order;
}
-size_t ProcessFreeBSD::PutSTDIN(const char *buf, size_t len, Error &error) {
+size_t ProcessFreeBSD::PutSTDIN(const char *buf, size_t len, Status &error) {
ssize_t status;
if ((status = write(m_monitor->GetTerminalFD(), buf, len)) < 0) {
error.SetErrorToErrno();
@@ -943,7 +945,7 @@ static size_t ReadMemoryCallback(EmulateInstruction *instruction, void *baton,
lldb::addr_t addr, void *dst, size_t length) {
EmulatorBaton *emulator_baton = static_cast<EmulatorBaton *>(baton);
- Error error;
+ Status error;
size_t bytes_read =
emulator_baton->m_process->DoReadMemory(addr, dst, length, error);
if (!error.Success())
@@ -998,9 +1000,9 @@ bool ProcessFreeBSD::SingleStepBreakpointHit(
return false;
}
-Error ProcessFreeBSD::SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
- lldb::addr_t addr) {
- Error error;
+Status ProcessFreeBSD::SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
+ lldb::addr_t addr) {
+ Status error;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
if (log) {
@@ -1010,8 +1012,8 @@ Error ProcessFreeBSD::SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
// Validate the address.
if (addr == LLDB_INVALID_ADDRESS)
- return Error("ProcessFreeBSD::%s invalid load address specified.",
- __FUNCTION__);
+ return Status("ProcessFreeBSD::%s invalid load address specified.",
+ __FUNCTION__);
Breakpoint *const sw_step_break =
m_process->GetTarget().CreateBreakpoint(addr, true, false).get();
@@ -1023,7 +1025,7 @@ Error ProcessFreeBSD::SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
__FUNCTION__, addr);
m_threads_stepping_with_breakpoint.insert({tid, sw_step_break->GetID()});
- return Error();
+ return Status();
}
bool ProcessFreeBSD::IsSoftwareStepBreakpoint(lldb::tid_t tid) {
@@ -1063,18 +1065,18 @@ bool ProcessFreeBSD::SupportHardwareSingleStepping() const {
return true;
}
-Error ProcessFreeBSD::SetupSoftwareSingleStepping(lldb::tid_t tid) {
+Status ProcessFreeBSD::SetupSoftwareSingleStepping(lldb::tid_t tid) {
std::unique_ptr<EmulateInstruction> emulator_ap(
EmulateInstruction::FindPlugin(GetTarget().GetArchitecture(),
eInstructionTypePCModifying, nullptr));
if (emulator_ap == nullptr)
- return Error("Instruction emulator not found!");
+ return Status("Instruction emulator not found!");
FreeBSDThread *thread = static_cast<FreeBSDThread *>(
m_thread_list.FindThreadByID(tid, false).get());
if (thread == NULL)
- return Error("Thread not found not found!");
+ return Status("Thread not found not found!");
lldb::RegisterContextSP register_context_sp = thread->GetRegisterContext();
@@ -1086,7 +1088,7 @@ Error ProcessFreeBSD::SetupSoftwareSingleStepping(lldb::tid_t tid) {
emulator_ap->SetWriteRegCallback(&WriteRegisterCallback);
if (!emulator_ap->ReadInstruction())
- return Error("Read instruction failed!");
+ return Status("Read instruction failed!");
bool emulation_result =
emulator_ap->EvaluateInstruction(eEmulateInstructionOptionAutoAdvancePC);
@@ -1111,9 +1113,9 @@ Error ProcessFreeBSD::SetupSoftwareSingleStepping(lldb::tid_t tid) {
// The instruction emulation failed after it modified the PC. It is an
// unknown error where we can't continue because the next instruction is
// modifying the PC but we don't know how.
- return Error("Instruction emulation failed unexpectedly");
+ return Status("Instruction emulation failed unexpectedly");
}
SetSoftwareSingleStepBreakpoint(tid, next_pc);
- return Error();
+ return Status();
}
diff --git a/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h b/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h
index 063eb6f68123..7ed2a56cd549 100644
--- a/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h
+++ b/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h
@@ -47,7 +47,7 @@ public:
~ProcessFreeBSD();
- virtual lldb_private::Error WillResume() override;
+ virtual lldb_private::Status WillResume() override;
//------------------------------------------------------------------
// PluginInterface protocol
@@ -65,27 +65,27 @@ public:
bool CanDebug(lldb::TargetSP target_sp,
bool plugin_specified_by_name) override;
- lldb_private::Error WillLaunch(lldb_private::Module *module) override;
+ lldb_private::Status WillLaunch(lldb_private::Module *module) override;
- lldb_private::Error DoAttachToProcessWithID(
+ lldb_private::Status DoAttachToProcessWithID(
lldb::pid_t pid,
const lldb_private::ProcessAttachInfo &attach_info) override;
- lldb_private::Error
+ lldb_private::Status
DoLaunch(lldb_private::Module *exe_module,
lldb_private::ProcessLaunchInfo &launch_info) override;
void DidLaunch() override;
- lldb_private::Error DoResume() override;
+ lldb_private::Status DoResume() override;
- lldb_private::Error DoHalt(bool &caused_stop) override;
+ lldb_private::Status DoHalt(bool &caused_stop) override;
- lldb_private::Error DoDetach(bool keep_stopped) override;
+ lldb_private::Status DoDetach(bool keep_stopped) override;
- lldb_private::Error DoSignal(int signal) override;
+ lldb_private::Status DoSignal(int signal) override;
- lldb_private::Error DoDestroy() override;
+ lldb_private::Status DoDestroy() override;
void DoDidExec() override;
@@ -94,35 +94,35 @@ public:
bool IsAlive() override;
size_t DoReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
size_t DoWriteMemory(lldb::addr_t vm_addr, const void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
lldb::addr_t DoAllocateMemory(size_t size, uint32_t permissions,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
- lldb_private::Error DoDeallocateMemory(lldb::addr_t ptr) override;
+ lldb_private::Status DoDeallocateMemory(lldb::addr_t ptr) override;
virtual size_t
GetSoftwareBreakpointTrapOpcode(lldb_private::BreakpointSite *bp_site);
- lldb_private::Error
+ lldb_private::Status
EnableBreakpointSite(lldb_private::BreakpointSite *bp_site) override;
- lldb_private::Error
+ lldb_private::Status
DisableBreakpointSite(lldb_private::BreakpointSite *bp_site) override;
- lldb_private::Error EnableWatchpoint(lldb_private::Watchpoint *wp,
- bool notify = true) override;
-
- lldb_private::Error DisableWatchpoint(lldb_private::Watchpoint *wp,
+ lldb_private::Status EnableWatchpoint(lldb_private::Watchpoint *wp,
bool notify = true) override;
- lldb_private::Error GetWatchpointSupportInfo(uint32_t &num) override;
+ lldb_private::Status DisableWatchpoint(lldb_private::Watchpoint *wp,
+ bool notify = true) override;
+
+ lldb_private::Status GetWatchpointSupportInfo(uint32_t &num) override;
- lldb_private::Error GetWatchpointSupportInfo(uint32_t &num,
- bool &after) override;
+ lldb_private::Status GetWatchpointSupportInfo(uint32_t &num,
+ bool &after) override;
virtual uint32_t UpdateThreadListIfNeeded();
@@ -134,7 +134,7 @@ public:
lldb::addr_t GetImageInfoAddress() override;
size_t PutSTDIN(const char *buf, size_t len,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
const lldb::DataBufferSP GetAuxvData() override;
@@ -169,10 +169,10 @@ public:
void *baton, lldb_private::StoppointCallbackContext *context,
lldb::user_id_t break_id, lldb::user_id_t break_loc_id);
- lldb_private::Error SetupSoftwareSingleStepping(lldb::tid_t tid);
+ lldb_private::Status SetupSoftwareSingleStepping(lldb::tid_t tid);
- lldb_private::Error SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
- lldb::addr_t addr);
+ lldb_private::Status SetSoftwareSingleStepBreakpoint(lldb::tid_t tid,
+ lldb::addr_t addr);
bool IsSoftwareStepBreakpoint(lldb::tid_t tid);
diff --git a/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp b/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
index 68ab41651162..1667490f1344 100644
--- a/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
+++ b/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
@@ -29,7 +29,7 @@
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/UnixSignals.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "FreeBSDThread.h"
#include "Plugins/Process/POSIX/CrashReason.h"
@@ -154,7 +154,7 @@ PtraceWrapper((req), (pid), (addr), (data))
// functions without needed to go thru the thread funnel.
static size_t DoReadMemory(lldb::pid_t pid, lldb::addr_t vm_addr, void *buf,
- size_t size, Error &error) {
+ size_t size, Status &error) {
struct ptrace_io_desc pi_desc;
pi_desc.piod_op = PIOD_READ_D;
@@ -168,7 +168,7 @@ static size_t DoReadMemory(lldb::pid_t pid, lldb::addr_t vm_addr, void *buf,
}
static size_t DoWriteMemory(lldb::pid_t pid, lldb::addr_t vm_addr,
- const void *buf, size_t size, Error &error) {
+ const void *buf, size_t size, Status &error) {
struct ptrace_io_desc pi_desc;
pi_desc.piod_op = PIOD_WRITE_D;
@@ -183,7 +183,7 @@ static size_t DoWriteMemory(lldb::pid_t pid, lldb::addr_t vm_addr,
// Simple helper function to ensure flags are enabled on the given file
// descriptor.
-static bool EnsureFDFlags(int fd, int flags, Error &error) {
+static bool EnsureFDFlags(int fd, int flags, Status &error) {
int status;
if ((status = fcntl(fd, F_GETFL)) == -1) {
@@ -221,7 +221,7 @@ public:
/// @brief Implements ProcessMonitor::ReadMemory.
class ReadOperation : public Operation {
public:
- ReadOperation(lldb::addr_t addr, void *buff, size_t size, Error &error,
+ ReadOperation(lldb::addr_t addr, void *buff, size_t size, Status &error,
size_t &result)
: m_addr(addr), m_buff(buff), m_size(size), m_error(error),
m_result(result) {}
@@ -232,7 +232,7 @@ private:
lldb::addr_t m_addr;
void *m_buff;
size_t m_size;
- Error &m_error;
+ Status &m_error;
size_t &m_result;
};
@@ -247,8 +247,8 @@ void ReadOperation::Execute(ProcessMonitor *monitor) {
/// @brief Implements ProcessMonitor::WriteMemory.
class WriteOperation : public Operation {
public:
- WriteOperation(lldb::addr_t addr, const void *buff, size_t size, Error &error,
- size_t &result)
+ WriteOperation(lldb::addr_t addr, const void *buff, size_t size,
+ Status &error, size_t &result)
: m_addr(addr), m_buff(buff), m_size(size), m_error(error),
m_result(result) {}
@@ -258,7 +258,7 @@ private:
lldb::addr_t m_addr;
const void *m_buff;
size_t m_size;
- Error &m_error;
+ Status &m_error;
size_t &m_result;
};
@@ -672,12 +672,12 @@ void KillOperation::Execute(ProcessMonitor *monitor) {
/// @brief Implements ProcessMonitor::Detach.
class DetachOperation : public Operation {
public:
- DetachOperation(Error &result) : m_error(result) {}
+ DetachOperation(Status &result) : m_error(result) {}
void Execute(ProcessMonitor *monitor);
private:
- Error &m_error;
+ Status &m_error;
};
void DetachOperation::Execute(ProcessMonitor *monitor) {
@@ -731,7 +731,7 @@ ProcessMonitor::ProcessMonitor(
const FileSpec &stdout_file_spec, const FileSpec &stderr_file_spec,
const FileSpec &working_dir,
const lldb_private::ProcessLaunchInfo & /* launch_info */,
- lldb_private::Error &error)
+ lldb_private::Status &error)
: m_process(static_cast<ProcessFreeBSD *>(process)),
m_pid(LLDB_INVALID_PROCESS_ID), m_terminal_fd(-1), m_operation(0) {
using namespace std::placeholders;
@@ -777,7 +777,7 @@ WAIT_AGAIN:
}
ProcessMonitor::ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid,
- lldb_private::Error &error)
+ lldb_private::Status &error)
: m_process(static_cast<ProcessFreeBSD *>(process)), m_pid(pid),
m_terminal_fd(-1), m_operation(0) {
using namespace std::placeholders;
@@ -824,7 +824,7 @@ ProcessMonitor::~ProcessMonitor() { StopMonitor(); }
//------------------------------------------------------------------------------
// Thread setup and tear down.
-void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Error &error) {
+void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) {
static const char *g_thread_name = "lldb.process.freebsd.operation";
if (m_operation_thread.IsJoinable())
@@ -992,7 +992,7 @@ FINISH:
}
void ProcessMonitor::StartAttachOpThread(AttachArgs *args,
- lldb_private::Error &error) {
+ lldb_private::Status &error) {
static const char *g_thread_name = "lldb.process.freebsd.operation";
if (m_operation_thread.IsJoinable())
@@ -1240,7 +1240,7 @@ void ProcessMonitor::DoOperation(Operation *op) {
}
size_t ProcessMonitor::ReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
size_t result;
ReadOperation op(vm_addr, buf, size, error, result);
DoOperation(&op);
@@ -1248,7 +1248,7 @@ size_t ProcessMonitor::ReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
}
size_t ProcessMonitor::WriteMemory(lldb::addr_t vm_addr, const void *buf,
- size_t size, lldb_private::Error &error) {
+ size_t size, lldb_private::Status &error) {
size_t result;
WriteOperation op(vm_addr, buf, size, error, result);
DoOperation(&op);
@@ -1389,8 +1389,8 @@ bool ProcessMonitor::GetEventMessage(lldb::tid_t tid, unsigned long *message) {
return result;
}
-lldb_private::Error ProcessMonitor::Detach(lldb::tid_t tid) {
- lldb_private::Error error;
+lldb_private::Status ProcessMonitor::Detach(lldb::tid_t tid) {
+ lldb_private::Status error;
if (tid != LLDB_INVALID_THREAD_ID) {
DetachOperation op(error);
DoOperation(&op);
diff --git a/source/Plugins/Process/FreeBSD/ProcessMonitor.h b/source/Plugins/Process/FreeBSD/ProcessMonitor.h
index 58629189b7b8..0963453a31b1 100644
--- a/source/Plugins/Process/FreeBSD/ProcessMonitor.h
+++ b/source/Plugins/Process/FreeBSD/ProcessMonitor.h
@@ -23,7 +23,7 @@
#include "lldb/lldb-types.h"
namespace lldb_private {
-class Error;
+class Status;
class Module;
class Scalar;
} // End lldb_private namespace.
@@ -54,10 +54,10 @@ public:
const lldb_private::FileSpec &stderr_file_spec,
const lldb_private::FileSpec &working_dir,
const lldb_private::ProcessLaunchInfo &launch_info,
- lldb_private::Error &error);
+ lldb_private::Status &error);
ProcessMonitor(ProcessFreeBSD *process, lldb::pid_t pid,
- lldb_private::Error &error);
+ lldb_private::Status &error);
~ProcessMonitor();
@@ -86,14 +86,14 @@ public:
///
/// This method is provided to implement Process::DoReadMemory.
size_t ReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
- lldb_private::Error &error);
+ lldb_private::Status &error);
/// Writes @p size bytes from address @p vm_adder in the inferior process
/// address space.
///
/// This method is provided to implement Process::DoWriteMemory.
size_t WriteMemory(lldb::addr_t vm_addr, const void *buf, size_t size,
- lldb_private::Error &error);
+ lldb_private::Status &error);
/// Reads the contents from the register identified by the given (architecture
/// dependent) offset.
@@ -178,7 +178,7 @@ public:
/// Terminate the traced process.
bool Kill();
- lldb_private::Error Detach(lldb::tid_t tid);
+ lldb_private::Status Detach(lldb::tid_t tid);
void StopMonitor();
@@ -210,7 +210,7 @@ private:
ProcessMonitor *m_monitor; // The monitor performing the attach.
sem_t m_semaphore; // Posted to once operation complete.
- lldb_private::Error m_error; // Set if process operation failed.
+ lldb_private::Status m_error; // Set if process operation failed.
};
/// @class LauchArgs
@@ -238,7 +238,7 @@ private:
const lldb_private::FileSpec m_working_dir; // Working directory or empty.
};
- void StartLaunchOpThread(LaunchArgs *args, lldb_private::Error &error);
+ void StartLaunchOpThread(LaunchArgs *args, lldb_private::Status &error);
static void *LaunchOpThread(void *arg);
@@ -252,7 +252,7 @@ private:
lldb::pid_t m_pid; // pid of the process to be attached.
};
- void StartAttachOpThread(AttachArgs *args, lldb_private::Error &error);
+ void StartAttachOpThread(AttachArgs *args, lldb_private::Status &error);
static void *AttachOpThread(void *args);
diff --git a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp
index 14171d614c9e..59d42b9ad72e 100644
--- a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp
+++ b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp
@@ -75,7 +75,7 @@ bool RegisterContextPOSIXProcessMonitor_arm::WriteRegister(
// Read the full register.
if (ReadRegister(full_reg_info, full_value)) {
- Error error;
+ Status error;
ByteOrder byte_order = GetByteOrder();
uint8_t dst[RegisterValue::kMaxRegisterByteSize];
diff --git a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp
index 8a8eb0520cca..93ffeb5ea79b 100644
--- a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp
+++ b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp
@@ -77,7 +77,7 @@ bool RegisterContextPOSIXProcessMonitor_arm64::WriteRegister(
// Read the full register.
if (ReadRegister(full_reg_info, full_value)) {
- lldb_private::Error error;
+ lldb_private::Status error;
lldb::ByteOrder byte_order = GetByteOrder();
uint8_t dst[lldb_private::RegisterValue::kMaxRegisterByteSize];
diff --git a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp
index ab50a5db3f3e..b911ee222015 100644
--- a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp
+++ b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp
@@ -76,7 +76,7 @@ bool RegisterContextPOSIXProcessMonitor_mips64::WriteRegister(
// Read the full register.
if (ReadRegister(full_reg_info, full_value)) {
- Error error;
+ Status error;
ByteOrder byte_order = GetByteOrder();
uint8_t dst[RegisterValue::kMaxRegisterByteSize];
diff --git a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp
index 70eec945ce8d..bc1d4df89fc8 100644
--- a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp
+++ b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp
@@ -88,7 +88,7 @@ bool RegisterContextPOSIXProcessMonitor_powerpc::WriteRegister(
// Read the full register.
if (ReadRegister(full_reg_info, full_value)) {
- Error error;
+ Status error;
ByteOrder byte_order = GetByteOrder();
uint8_t dst[RegisterValue::kMaxRegisterByteSize];
diff --git a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp
index 036306058ff8..1cd8f1aafa6e 100644
--- a/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp
+++ b/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp
@@ -130,7 +130,7 @@ bool RegisterContextPOSIXProcessMonitor_x86_64::WriteRegister(
// Read the full register.
if (ReadRegister(full_reg_info, full_value)) {
- Error error;
+ Status error;
ByteOrder byte_order = GetByteOrder();
uint8_t dst[RegisterValue::kMaxRegisterByteSize];
diff --git a/source/Plugins/Process/Linux/NativeProcessLinux.cpp b/source/Plugins/Process/Linux/NativeProcessLinux.cpp
index 914d690ad88c..15e7c9b5f698 100644
--- a/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ b/source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -40,8 +40,8 @@
#include "lldb/Target/Process.h"
#include "lldb/Target/ProcessLaunchInfo.h"
#include "lldb/Target/Target.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/LLDBAssert.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/StringExtractor.h"
#include "NativeThreadLinux.h"
@@ -193,8 +193,8 @@ static_assert(sizeof(long) >= k_ptrace_word_size,
// Simple helper function to ensure flags are enabled on the given file
// descriptor.
-static Error EnsureFDFlags(int fd, int flags) {
- Error error;
+static Status EnsureFDFlags(int fd, int flags) {
+ Status error;
int status = fcntl(fd, F_GETFL);
if (status == -1) {
@@ -214,13 +214,13 @@ static Error EnsureFDFlags(int fd, int flags) {
// Public Static Methods
// -----------------------------------------------------------------------------
-Error NativeProcessProtocol::Launch(
+Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info,
NativeProcessProtocol::NativeDelegate &native_delegate, MainLoop &mainloop,
NativeProcessProtocolSP &native_process_sp) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
- Error error;
+ Status error;
// Verify the working directory is valid if one was specified.
FileSpec working_dir{launch_info.GetWorkingDirectory()};
@@ -254,7 +254,7 @@ Error NativeProcessProtocol::Launch(
return error;
}
-Error NativeProcessProtocol::Attach(
+Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &native_process_sp) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
@@ -262,7 +262,7 @@ Error NativeProcessProtocol::Attach(
// Retrieve the architecture for the running process.
ArchSpec process_arch;
- Error error = ResolveProcessArchitecture(pid, process_arch);
+ Status error = ResolveProcessArchitecture(pid, process_arch);
if (!error.Success())
return error;
@@ -292,7 +292,7 @@ NativeProcessLinux::NativeProcessLinux()
m_pending_notification_tid(LLDB_INVALID_THREAD_ID) {}
void NativeProcessLinux::AttachToInferior(MainLoop &mainloop, lldb::pid_t pid,
- Error &error) {
+ Status &error) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid = {0:x}", pid);
@@ -314,9 +314,9 @@ void NativeProcessLinux::AttachToInferior(MainLoop &mainloop, lldb::pid_t pid,
Attach(pid, error);
}
-Error NativeProcessLinux::LaunchInferior(MainLoop &mainloop,
- ProcessLaunchInfo &launch_info) {
- Error error;
+Status NativeProcessLinux::LaunchInferior(MainLoop &mainloop,
+ ProcessLaunchInfo &launch_info) {
+ Status error;
m_sigchld_handle = mainloop.RegisterSignal(
SIGCHLD, [this](MainLoopBase &) { SigchldHandler(); }, error);
if (!m_sigchld_handle)
@@ -402,7 +402,7 @@ Error NativeProcessLinux::LaunchInferior(MainLoop &mainloop,
return error;
}
-::pid_t NativeProcessLinux::Attach(lldb::pid_t pid, Error &error) {
+::pid_t NativeProcessLinux::Attach(lldb::pid_t pid, Status &error) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
// Use a map to keep track of the threads which we have attached/need to
@@ -484,7 +484,7 @@ Error NativeProcessLinux::LaunchInferior(MainLoop &mainloop,
return pid;
}
-Error NativeProcessLinux::SetDefaultPtraceOpts(lldb::pid_t pid) {
+Status NativeProcessLinux::SetDefaultPtraceOpts(lldb::pid_t pid) {
long ptrace_opts = 0;
// Have the child raise an event on exit. This is used to keep the child in
@@ -857,7 +857,7 @@ void NativeProcessLinux::MonitorSIGTRAP(const siginfo_t &info,
{
// If a watchpoint was hit, report it
uint32_t wp_index;
- Error error = thread.GetRegisterContext()->GetWatchpointHitIndex(
+ Status error = thread.GetRegisterContext()->GetWatchpointHitIndex(
wp_index, (uintptr_t)info.si_addr);
if (error.Fail())
LLDB_LOG(log,
@@ -894,7 +894,7 @@ void NativeProcessLinux::MonitorSIGTRAP(const siginfo_t &info,
{
// If a watchpoint was hit, report it
uint32_t wp_index;
- Error error = thread.GetRegisterContext()->GetWatchpointHitIndex(
+ Status error = thread.GetRegisterContext()->GetWatchpointHitIndex(
wp_index, LLDB_INVALID_ADDRESS);
if (error.Fail())
LLDB_LOG(log,
@@ -950,7 +950,7 @@ void NativeProcessLinux::MonitorBreakpoint(NativeThreadLinux &thread) {
// Mark the thread as stopped at breakpoint.
thread.SetStoppedByBreakpoint();
- Error error = FixupBreakpointPCAsNeeded(thread);
+ Status error = FixupBreakpointPCAsNeeded(thread);
if (error.Fail())
LLDB_LOG(log, "pid = {0} fixup: {1}", thread.GetID(), error);
@@ -1032,7 +1032,7 @@ void NativeProcessLinux::MonitorSignal(const siginfo_t &info,
} else {
// We can end up here if stop was initiated by LLGS but by this time a
// thread stop has occurred - maybe initiated by another event.
- Error error = ResumeThread(thread, thread.GetState(), 0);
+ Status error = ResumeThread(thread, thread.GetState(), 0);
if (error.Fail())
LLDB_LOG(log, "failed to resume thread {0}: {1}", thread.GetID(),
error);
@@ -1108,7 +1108,7 @@ static bool ReadRegisterCallback(EmulateInstruction *instruction, void *baton,
emulator_baton->m_reg_context->GetRegisterInfo(
eRegisterKindDWARF, reg_info->kinds[eRegisterKindDWARF]);
- Error error =
+ Status error =
emulator_baton->m_reg_context->ReadRegister(full_reg_info, reg_value);
if (error.Success())
return true;
@@ -1140,9 +1140,9 @@ static lldb::addr_t ReadFlags(NativeRegisterContext *regsiter_context) {
LLDB_INVALID_ADDRESS);
}
-Error NativeProcessLinux::SetupSoftwareSingleStepping(
- NativeThreadLinux &thread) {
- Error error;
+Status
+NativeProcessLinux::SetupSoftwareSingleStepping(NativeThreadLinux &thread) {
+ Status error;
NativeRegisterContextSP register_context_sp = thread.GetRegisterContext();
std::unique_ptr<EmulateInstruction> emulator_ap(
@@ -1150,7 +1150,7 @@ Error NativeProcessLinux::SetupSoftwareSingleStepping(
nullptr));
if (emulator_ap == nullptr)
- return Error("Instruction emulator not found!");
+ return Status("Instruction emulator not found!");
EmulatorBaton baton(this, register_context_sp.get());
emulator_ap->SetBaton(&baton);
@@ -1160,7 +1160,7 @@ Error NativeProcessLinux::SetupSoftwareSingleStepping(
emulator_ap->SetWriteRegCallback(&WriteRegisterCallback);
if (!emulator_ap->ReadInstruction())
- return Error("Read instruction failed!");
+ return Status("Read instruction failed!");
bool emulation_result =
emulator_ap->EvaluateInstruction(eEmulateInstructionOptionAutoAdvancePC);
@@ -1198,7 +1198,7 @@ Error NativeProcessLinux::SetupSoftwareSingleStepping(
// The instruction emulation failed after it modified the PC. It is an
// unknown error where we can't continue because the next instruction is
// modifying the PC but we don't know how.
- return Error("Instruction emulation failed unexpectedly.");
+ return Status("Instruction emulation failed unexpectedly.");
}
if (m_arch.GetMachine() == llvm::Triple::arm) {
@@ -1222,13 +1222,13 @@ Error NativeProcessLinux::SetupSoftwareSingleStepping(
// If setting the breakpoint fails because next_pc is out of
// the address space, ignore it and let the debugee segfault.
if (error.GetError() == EIO || error.GetError() == EFAULT) {
- return Error();
+ return Status();
} else if (error.Fail())
return error;
m_threads_stepping_with_breakpoint.insert({thread.GetID(), next_pc});
- return Error();
+ return Status();
}
bool NativeProcessLinux::SupportHardwareSingleStepping() const {
@@ -1241,7 +1241,7 @@ bool NativeProcessLinux::SupportHardwareSingleStepping() const {
return true;
}
-Error NativeProcessLinux::Resume(const ResumeActionList &resume_actions) {
+Status NativeProcessLinux::Resume(const ResumeActionList &resume_actions) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid {0}", GetID());
@@ -1257,7 +1257,7 @@ Error NativeProcessLinux::Resume(const ResumeActionList &resume_actions) {
continue;
if (action->state == eStateStepping) {
- Error error = SetupSoftwareSingleStepping(
+ Status error = SetupSoftwareSingleStepping(
static_cast<NativeThreadLinux &>(*thread_sp));
if (error.Fail())
return error;
@@ -1295,18 +1295,18 @@ Error NativeProcessLinux::Resume(const ResumeActionList &resume_actions) {
llvm_unreachable("Unexpected state");
default:
- return Error("NativeProcessLinux::%s (): unexpected state %s specified "
- "for pid %" PRIu64 ", tid %" PRIu64,
- __FUNCTION__, StateAsCString(action->state), GetID(),
- thread_sp->GetID());
+ return Status("NativeProcessLinux::%s (): unexpected state %s specified "
+ "for pid %" PRIu64 ", tid %" PRIu64,
+ __FUNCTION__, StateAsCString(action->state), GetID(),
+ thread_sp->GetID());
}
}
- return Error();
+ return Status();
}
-Error NativeProcessLinux::Halt() {
- Error error;
+Status NativeProcessLinux::Halt() {
+ Status error;
if (kill(GetID(), SIGSTOP) != 0)
error.SetErrorToErrno();
@@ -1314,8 +1314,8 @@ Error NativeProcessLinux::Halt() {
return error;
}
-Error NativeProcessLinux::Detach() {
- Error error;
+Status NativeProcessLinux::Detach() {
+ Status error;
// Stop monitoring the inferior.
m_sigchld_handle.reset();
@@ -1325,7 +1325,7 @@ Error NativeProcessLinux::Detach() {
return error;
for (auto thread_sp : m_threads) {
- Error e = Detach(thread_sp->GetID());
+ Status e = Detach(thread_sp->GetID());
if (e.Fail())
error =
e; // Save the error, but still attempt to detach from other threads.
@@ -1334,8 +1334,8 @@ Error NativeProcessLinux::Detach() {
return error;
}
-Error NativeProcessLinux::Signal(int signo) {
- Error error;
+Status NativeProcessLinux::Signal(int signo) {
+ Status error;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "sending signal {0} ({1}) to pid {1}", signo,
@@ -1347,7 +1347,7 @@ Error NativeProcessLinux::Signal(int signo) {
return error;
}
-Error NativeProcessLinux::Interrupt() {
+Status NativeProcessLinux::Interrupt() {
// Pick a running thread (or if none, a not-dead stopped thread) as
// the chosen thread that will be the stop-reason thread.
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
@@ -1375,8 +1375,8 @@ Error NativeProcessLinux::Interrupt() {
}
if (!running_thread_sp && !stopped_thread_sp) {
- Error error("found no running/stepping or live stopped threads as target "
- "for interrupt");
+ Status error("found no running/stepping or live stopped threads as target "
+ "for interrupt");
LLDB_LOG(log, "skipping due to error: {0}", error);
return error;
@@ -1391,14 +1391,14 @@ Error NativeProcessLinux::Interrupt() {
StopRunningThreads(deferred_signal_thread_sp->GetID());
- return Error();
+ return Status();
}
-Error NativeProcessLinux::Kill() {
+Status NativeProcessLinux::Kill() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid {0}", GetID());
- Error error;
+ Status error;
switch (m_state) {
case StateType::eStateInvalid:
@@ -1430,7 +1430,7 @@ Error NativeProcessLinux::Kill() {
return error;
}
-static Error
+static Status
ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
MemoryRegionInfo &memory_region_info) {
memory_region_info.Clear();
@@ -1447,7 +1447,7 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
// Parse out hyphen separating start and end address from range.
if (!line_extractor.GetBytesLeft() || (line_extractor.GetChar() != '-'))
- return Error(
+ return Status(
"malformed /proc/{pid}/maps entry, missing dash between address range");
// Parse out the ending address
@@ -1455,7 +1455,8 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
// Parse out the space after the address.
if (!line_extractor.GetBytesLeft() || (line_extractor.GetChar() != ' '))
- return Error("malformed /proc/{pid}/maps entry, missing space after range");
+ return Status(
+ "malformed /proc/{pid}/maps entry, missing space after range");
// Save the range.
memory_region_info.GetRange().SetRangeBase(start_address);
@@ -1467,8 +1468,8 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
// Parse out each permission entry.
if (line_extractor.GetBytesLeft() < 4)
- return Error("malformed /proc/{pid}/maps entry, missing some portion of "
- "permissions");
+ return Status("malformed /proc/{pid}/maps entry, missing some portion of "
+ "permissions");
// Handle read permission.
const char read_perm_char = line_extractor.GetChar();
@@ -1477,7 +1478,7 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
else if (read_perm_char == '-')
memory_region_info.SetReadable(MemoryRegionInfo::OptionalBool::eNo);
else
- return Error("unexpected /proc/{pid}/maps read permission char");
+ return Status("unexpected /proc/{pid}/maps read permission char");
// Handle write permission.
const char write_perm_char = line_extractor.GetChar();
@@ -1486,7 +1487,7 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
else if (write_perm_char == '-')
memory_region_info.SetWritable(MemoryRegionInfo::OptionalBool::eNo);
else
- return Error("unexpected /proc/{pid}/maps write permission char");
+ return Status("unexpected /proc/{pid}/maps write permission char");
// Handle execute permission.
const char exec_perm_char = line_extractor.GetChar();
@@ -1495,7 +1496,7 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
else if (exec_perm_char == '-')
memory_region_info.SetExecutable(MemoryRegionInfo::OptionalBool::eNo);
else
- return Error("unexpected /proc/{pid}/maps exec permission char");
+ return Status("unexpected /proc/{pid}/maps exec permission char");
line_extractor.GetChar(); // Read the private bit
line_extractor.SkipSpaces(); // Skip the separator
@@ -1511,11 +1512,11 @@ ParseMemoryRegionInfoFromProcMapsLine(llvm::StringRef &maps_line,
if (name)
memory_region_info.SetName(name);
- return Error();
+ return Status();
}
-Error NativeProcessLinux::GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) {
+Status NativeProcessLinux::GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) {
// FIXME review that the final memory region returned extends to the end of
// the virtual address space,
// with no perms if it is not mapped.
@@ -1526,10 +1527,10 @@ Error NativeProcessLinux::GetMemoryRegionInfo(lldb::addr_t load_addr,
if (m_supports_mem_region == LazyBool::eLazyBoolNo) {
// We're done.
- return Error("unsupported");
+ return Status("unsupported");
}
- Error error = PopulateMemoryRegionCache();
+ Status error = PopulateMemoryRegionCache();
if (error.Fail()) {
return error;
}
@@ -1585,7 +1586,7 @@ Error NativeProcessLinux::GetMemoryRegionInfo(lldb::addr_t load_addr,
return error;
}
-Error NativeProcessLinux::PopulateMemoryRegionCache() {
+Status NativeProcessLinux::PopulateMemoryRegionCache() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
// If our cache is empty, pull the latest. There should always be at least
@@ -1593,7 +1594,7 @@ Error NativeProcessLinux::PopulateMemoryRegionCache() {
if (!m_mem_region_cache.empty()) {
LLDB_LOG(log, "reusing {0} cached memory region entries",
m_mem_region_cache.size());
- return Error();
+ return Status();
}
auto BufferOrError = getProcFile(GetID(), "maps");
@@ -1606,7 +1607,8 @@ Error NativeProcessLinux::PopulateMemoryRegionCache() {
StringRef Line;
std::tie(Line, Rest) = Rest.split('\n');
MemoryRegionInfo info;
- const Error parse_error = ParseMemoryRegionInfoFromProcMapsLine(Line, info);
+ const Status parse_error =
+ ParseMemoryRegionInfoFromProcMapsLine(Line, info);
if (parse_error.Fail()) {
LLDB_LOG(log, "failed to parse proc maps line '{0}': {1}", Line,
parse_error);
@@ -1625,7 +1627,7 @@ Error NativeProcessLinux::PopulateMemoryRegionCache() {
LLDB_LOG(log,
"failed to find any procfs maps entries, assuming no support "
"for memory region metadata retrieval");
- return Error("not supported");
+ return Status("not supported");
}
LLDB_LOG(log, "read {0} memory region entries from /proc/{1}/maps",
@@ -1633,7 +1635,7 @@ Error NativeProcessLinux::PopulateMemoryRegionCache() {
// We support memory retrieval, remember that.
m_supports_mem_region = LazyBool::eLazyBoolYes;
- return Error();
+ return Status();
}
void NativeProcessLinux::DoStopIDBumped(uint32_t newBumpId) {
@@ -1644,13 +1646,13 @@ void NativeProcessLinux::DoStopIDBumped(uint32_t newBumpId) {
m_mem_region_cache.clear();
}
-Error NativeProcessLinux::AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) {
+Status NativeProcessLinux::AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) {
// FIXME implementing this requires the equivalent of
// InferiorCallPOSIX::InferiorCallMmap, which depends on
// functional ThreadPlans working with Native*Protocol.
#if 1
- return Error("not implemented yet");
+ return Status("not implemented yet");
#else
addr = LLDB_INVALID_ADDRESS;
@@ -1668,20 +1670,20 @@ Error NativeProcessLinux::AllocateMemory(size_t size, uint32_t permissions,
if (InferiorCallMmap(this, addr, 0, size, prot,
eMmapFlagsAnon | eMmapFlagsPrivate, -1, 0)) {
m_addr_to_mmap_size[addr] = size;
- return Error();
+ return Status();
} else {
addr = LLDB_INVALID_ADDRESS;
- return Error("unable to allocate %" PRIu64
- " bytes of memory with permissions %s",
- size, GetPermissionsAsCString(permissions));
+ return Status("unable to allocate %" PRIu64
+ " bytes of memory with permissions %s",
+ size, GetPermissionsAsCString(permissions));
}
#endif
}
-Error NativeProcessLinux::DeallocateMemory(lldb::addr_t addr) {
+Status NativeProcessLinux::DeallocateMemory(lldb::addr_t addr) {
// FIXME see comments in AllocateMemory - required lower-level
// bits not in place yet (ThreadPlans)
- return Error("not implemented");
+ return Status("not implemented");
}
lldb::addr_t NativeProcessLinux::GetSharedLibraryInfoAddress() {
@@ -1702,7 +1704,7 @@ bool NativeProcessLinux::GetArchitecture(ArchSpec &arch) const {
return true;
}
-Error NativeProcessLinux::GetSoftwareBreakpointPCOffset(
+Status NativeProcessLinux::GetSoftwareBreakpointPCOffset(
uint32_t &actual_opcode_size) {
// FIXME put this behind a breakpoint protocol class that can be
// set per architecture. Need ARM, MIPS support here.
@@ -1713,11 +1715,11 @@ Error NativeProcessLinux::GetSoftwareBreakpointPCOffset(
case llvm::Triple::x86:
case llvm::Triple::x86_64:
actual_opcode_size = static_cast<uint32_t>(sizeof(g_i386_opcode));
- return Error();
+ return Status();
case llvm::Triple::systemz:
actual_opcode_size = static_cast<uint32_t>(sizeof(g_s390x_opcode));
- return Error();
+ return Status();
case llvm::Triple::arm:
case llvm::Triple::aarch64:
@@ -1727,30 +1729,30 @@ Error NativeProcessLinux::GetSoftwareBreakpointPCOffset(
case llvm::Triple::mipsel:
// On these architectures the PC don't get updated for breakpoint hits
actual_opcode_size = 0;
- return Error();
+ return Status();
default:
assert(false && "CPU type not supported!");
- return Error("CPU type not supported");
+ return Status("CPU type not supported");
}
}
-Error NativeProcessLinux::SetBreakpoint(lldb::addr_t addr, uint32_t size,
- bool hardware) {
+Status NativeProcessLinux::SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) {
if (hardware)
return SetHardwareBreakpoint(addr, size);
else
return SetSoftwareBreakpoint(addr, size);
}
-Error NativeProcessLinux::RemoveBreakpoint(lldb::addr_t addr, bool hardware) {
+Status NativeProcessLinux::RemoveBreakpoint(lldb::addr_t addr, bool hardware) {
if (hardware)
return RemoveHardwareBreakpoint(addr);
else
return NativeProcessProtocol::RemoveBreakpoint(addr);
}
-Error NativeProcessLinux::GetSoftwareBreakpointTrapOpcode(
+Status NativeProcessLinux::GetSoftwareBreakpointTrapOpcode(
size_t trap_opcode_size_hint, size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) {
// FIXME put this behind a breakpoint protocol class that can be set per
@@ -1769,49 +1771,49 @@ Error NativeProcessLinux::GetSoftwareBreakpointTrapOpcode(
case llvm::Triple::aarch64:
trap_opcode_bytes = g_aarch64_opcode;
actual_opcode_size = sizeof(g_aarch64_opcode);
- return Error();
+ return Status();
case llvm::Triple::arm:
switch (trap_opcode_size_hint) {
case 2:
trap_opcode_bytes = g_thumb_breakpoint_opcode;
actual_opcode_size = sizeof(g_thumb_breakpoint_opcode);
- return Error();
+ return Status();
case 4:
trap_opcode_bytes = g_arm_breakpoint_opcode;
actual_opcode_size = sizeof(g_arm_breakpoint_opcode);
- return Error();
+ return Status();
default:
assert(false && "Unrecognised trap opcode size hint!");
- return Error("Unrecognised trap opcode size hint!");
+ return Status("Unrecognised trap opcode size hint!");
}
case llvm::Triple::x86:
case llvm::Triple::x86_64:
trap_opcode_bytes = g_i386_opcode;
actual_opcode_size = sizeof(g_i386_opcode);
- return Error();
+ return Status();
case llvm::Triple::mips:
case llvm::Triple::mips64:
trap_opcode_bytes = g_mips64_opcode;
actual_opcode_size = sizeof(g_mips64_opcode);
- return Error();
+ return Status();
case llvm::Triple::mipsel:
case llvm::Triple::mips64el:
trap_opcode_bytes = g_mips64el_opcode;
actual_opcode_size = sizeof(g_mips64el_opcode);
- return Error();
+ return Status();
case llvm::Triple::systemz:
trap_opcode_bytes = g_s390x_opcode;
actual_opcode_size = sizeof(g_s390x_opcode);
- return Error();
+ return Status();
default:
assert(false && "CPU type not supported!");
- return Error("CPU type not supported");
+ return Status("CPU type not supported");
}
}
@@ -1964,8 +1966,8 @@ NativeProcessLinux::GetCrashReasonForSIGBUS(const siginfo_t *info)
}
#endif
-Error NativeProcessLinux::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) {
+Status NativeProcessLinux::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) {
if (ProcessVmReadvSupported()) {
// The process_vm_readv path is about 50 times faster than ptrace api. We
// want to use
@@ -1989,7 +1991,7 @@ Error NativeProcessLinux::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
size, addr, success ? "Success" : strerror(errno));
if (success)
- return Error();
+ return Status();
// else the call failed for some reason, let's retry the read using ptrace
// api.
}
@@ -2002,7 +2004,7 @@ Error NativeProcessLinux::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
LLDB_LOG(log, "addr = {0}, buf = {1}, size = {2}", addr, buf, size);
for (bytes_read = 0; bytes_read < size; bytes_read += remainder) {
- Error error = NativeProcessLinux::PtraceWrapper(
+ Status error = NativeProcessLinux::PtraceWrapper(
PTRACE_PEEKDATA, GetID(), (void *)addr, nullptr, 0, &data);
if (error.Fail())
return error;
@@ -2017,23 +2019,23 @@ Error NativeProcessLinux::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
addr += k_ptrace_word_size;
dst += k_ptrace_word_size;
}
- return Error();
+ return Status();
}
-Error NativeProcessLinux::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
- size_t size,
- size_t &bytes_read) {
- Error error = ReadMemory(addr, buf, size, bytes_read);
+Status NativeProcessLinux::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
+ size_t size,
+ size_t &bytes_read) {
+ Status error = ReadMemory(addr, buf, size, bytes_read);
if (error.Fail())
return error;
return m_breakpoint_list.RemoveTrapsFromBuffer(addr, buf, size);
}
-Error NativeProcessLinux::WriteMemory(lldb::addr_t addr, const void *buf,
- size_t size, size_t &bytes_written) {
+Status NativeProcessLinux::WriteMemory(lldb::addr_t addr, const void *buf,
+ size_t size, size_t &bytes_written) {
const unsigned char *src = static_cast<const unsigned char *>(buf);
size_t remainder;
- Error error;
+ Status error;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_MEMORY));
LLDB_LOG(log, "addr = {0}, buf = {1}, size = {2}", addr, buf, size);
@@ -2075,18 +2077,18 @@ Error NativeProcessLinux::WriteMemory(lldb::addr_t addr, const void *buf,
return error;
}
-Error NativeProcessLinux::GetSignalInfo(lldb::tid_t tid, void *siginfo) {
+Status NativeProcessLinux::GetSignalInfo(lldb::tid_t tid, void *siginfo) {
return PtraceWrapper(PTRACE_GETSIGINFO, tid, nullptr, siginfo);
}
-Error NativeProcessLinux::GetEventMessage(lldb::tid_t tid,
- unsigned long *message) {
+Status NativeProcessLinux::GetEventMessage(lldb::tid_t tid,
+ unsigned long *message) {
return PtraceWrapper(PTRACE_GETEVENTMSG, tid, nullptr, message);
}
-Error NativeProcessLinux::Detach(lldb::tid_t tid) {
+Status NativeProcessLinux::Detach(lldb::tid_t tid) {
if (tid == LLDB_INVALID_THREAD_ID)
- return Error();
+ return Status();
return PtraceWrapper(PTRACE_DETACH, tid);
}
@@ -2137,10 +2139,11 @@ NativeThreadLinuxSP NativeProcessLinux::AddThread(lldb::tid_t thread_id) {
return thread_sp;
}
-Error NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
+Status
+NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
- Error error;
+ Status error;
// Find out the size of a breakpoint (might depend on where we are in the
// code).
@@ -2179,7 +2182,7 @@ Error NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
"pid {0} no lldb breakpoint found at current pc with "
"adjustment: {1}",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
// If the breakpoint is not a software breakpoint, nothing to do.
@@ -2188,7 +2191,7 @@ Error NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
log,
"pid {0} breakpoint found at {1:x}, not software, nothing to adjust",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
//
@@ -2202,7 +2205,7 @@ Error NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
"pid {0} breakpoint found at {1:x}, it is software, but the "
"size is zero, nothing to do (unexpected)",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
// Change the program counter.
@@ -2219,9 +2222,9 @@ Error NativeProcessLinux::FixupBreakpointPCAsNeeded(NativeThreadLinux &thread) {
return error;
}
-Error NativeProcessLinux::GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) {
- Error error = PopulateMemoryRegionCache();
+Status NativeProcessLinux::GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) {
+ Status error = PopulateMemoryRegionCache();
if (error.Fail())
return error;
@@ -2231,17 +2234,17 @@ Error NativeProcessLinux::GetLoadedModuleFileSpec(const char *module_path,
for (const auto &it : m_mem_region_cache) {
if (it.second.GetFilename() == module_file_spec.GetFilename()) {
file_spec = it.second;
- return Error();
+ return Status();
}
}
- return Error("Module file (%s) not found in /proc/%" PRIu64 "/maps file!",
- module_file_spec.GetFilename().AsCString(), GetID());
+ return Status("Module file (%s) not found in /proc/%" PRIu64 "/maps file!",
+ module_file_spec.GetFilename().AsCString(), GetID());
}
-Error NativeProcessLinux::GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) {
+Status NativeProcessLinux::GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) {
load_addr = LLDB_INVALID_ADDRESS;
- Error error = PopulateMemoryRegionCache();
+ Status error = PopulateMemoryRegionCache();
if (error.Fail())
return error;
@@ -2249,10 +2252,10 @@ Error NativeProcessLinux::GetFileLoadAddress(const llvm::StringRef &file_name,
for (const auto &it : m_mem_region_cache) {
if (it.second == file) {
load_addr = it.first.GetRange().GetRangeBase();
- return Error();
+ return Status();
}
}
- return Error("No load address found for specified file.");
+ return Status("No load address found for specified file.");
}
NativeThreadLinuxSP NativeProcessLinux::GetThreadByID(lldb::tid_t tid) {
@@ -2260,8 +2263,8 @@ NativeThreadLinuxSP NativeProcessLinux::GetThreadByID(lldb::tid_t tid) {
NativeProcessProtocol::GetThreadByID(tid));
}
-Error NativeProcessLinux::ResumeThread(NativeThreadLinux &thread,
- lldb::StateType state, int signo) {
+Status NativeProcessLinux::ResumeThread(NativeThreadLinux &thread,
+ lldb::StateType state, int signo) {
Log *const log = ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_THREAD);
LLDB_LOG(log, "tid: {0}", thread.GetID());
@@ -2336,7 +2339,7 @@ void NativeProcessLinux::SignalIfAllThreadsStopped() {
// Clear any temporary breakpoints we used to implement software single
// stepping.
for (const auto &thread_info : m_threads_stepping_with_breakpoint) {
- Error error = RemoveBreakpoint(thread_info.second);
+ Status error = RemoveBreakpoint(thread_info.second);
if (error.Fail())
LLDB_LOG(log, "pid = {0} remove stepping breakpoint: {1}",
thread_info.first, error);
@@ -2376,7 +2379,7 @@ void NativeProcessLinux::SigchldHandler() {
if (errno == EINTR)
continue;
- Error error(errno, eErrorTypePOSIX);
+ Status error(errno, eErrorTypePOSIX);
LLDB_LOG(log, "waitpid (-1, &status, _) failed: {0}", error);
break;
}
@@ -2414,10 +2417,10 @@ void NativeProcessLinux::SigchldHandler() {
// Wrapper for ptrace to catch errors and log calls.
// Note that ptrace sets errno on error because -1 can be a valid result (i.e.
// for PTRACE_PEEK*)
-Error NativeProcessLinux::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
- void *data, size_t data_size,
- long *result) {
- Error error;
+Status NativeProcessLinux::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
+ void *data, size_t data_size,
+ long *result) {
+ Status error;
long int ret;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PTRACE));
diff --git a/source/Plugins/Process/Linux/NativeProcessLinux.h b/source/Plugins/Process/Linux/NativeProcessLinux.h
index e4809d082b50..98fc88baab6e 100644
--- a/source/Plugins/Process/Linux/NativeProcessLinux.h
+++ b/source/Plugins/Process/Linux/NativeProcessLinux.h
@@ -26,7 +26,7 @@
#include "lldb/Host/common/NativeProcessProtocol.h"
namespace lldb_private {
-class Error;
+class Status;
class Scalar;
namespace process_linux {
@@ -38,11 +38,11 @@ namespace process_linux {
///
/// Changes in the inferior process state are broadcasted.
class NativeProcessLinux : public NativeProcessProtocol {
- friend Error NativeProcessProtocol::Launch(
+ friend Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
- friend Error NativeProcessProtocol::Attach(
+ friend Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
@@ -50,34 +50,34 @@ public:
// ---------------------------------------------------------------------
// NativeProcessProtocol Interface
// ---------------------------------------------------------------------
- Error Resume(const ResumeActionList &resume_actions) override;
+ Status Resume(const ResumeActionList &resume_actions) override;
- Error Halt() override;
+ Status Halt() override;
- Error Detach() override;
+ Status Detach() override;
- Error Signal(int signo) override;
+ Status Signal(int signo) override;
- Error Interrupt() override;
+ Status Interrupt() override;
- Error Kill() override;
+ Status Kill() override;
- Error GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) override;
+ Status GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) override;
- Error ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemory(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
- size_t &bytes_written) override;
+ Status WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
+ size_t &bytes_written) override;
- Error AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) override;
+ Status AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) override;
- Error DeallocateMemory(lldb::addr_t addr) override;
+ Status DeallocateMemory(lldb::addr_t addr) override;
lldb::addr_t GetSharedLibraryInfoAddress() override;
@@ -85,17 +85,18 @@ public:
bool GetArchitecture(ArchSpec &arch) const override;
- Error SetBreakpoint(lldb::addr_t addr, uint32_t size, bool hardware) override;
+ Status SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) override;
- Error RemoveBreakpoint(lldb::addr_t addr, bool hardware = false) override;
+ Status RemoveBreakpoint(lldb::addr_t addr, bool hardware = false) override;
void DoStopIDBumped(uint32_t newBumpId) override;
- Error GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) override;
+ Status GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) override;
- Error GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) override;
+ Status GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) override;
NativeThreadLinuxSP GetThreadByID(lldb::tid_t id);
@@ -107,9 +108,9 @@ public:
// ---------------------------------------------------------------------
// Interface used by NativeRegisterContext-derived classes.
// ---------------------------------------------------------------------
- static Error PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
- void *data = nullptr, size_t data_size = 0,
- long *result = nullptr);
+ static Status PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
+ void *data = nullptr, size_t data_size = 0,
+ long *result = nullptr);
bool SupportHardwareSingleStepping() const;
@@ -117,7 +118,7 @@ protected:
// ---------------------------------------------------------------------
// NativeProcessProtocol protected interface
// ---------------------------------------------------------------------
- Error
+ Status
GetSoftwareBreakpointTrapOpcode(size_t trap_opcode_size_hint,
size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) override;
@@ -140,15 +141,15 @@ private:
// ---------------------------------------------------------------------
NativeProcessLinux();
- Error LaunchInferior(MainLoop &mainloop, ProcessLaunchInfo &launch_info);
+ Status LaunchInferior(MainLoop &mainloop, ProcessLaunchInfo &launch_info);
/// Attaches to an existing process. Forms the
/// implementation of Process::DoAttach
- void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Error &error);
+ void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Status &error);
- ::pid_t Attach(lldb::pid_t pid, Error &error);
+ ::pid_t Attach(lldb::pid_t pid, Status &error);
- static Error SetDefaultPtraceOpts(const lldb::pid_t);
+ static Status SetDefaultPtraceOpts(const lldb::pid_t);
static void *MonitorThread(void *baton);
@@ -167,7 +168,7 @@ private:
void MonitorSignal(const siginfo_t &info, NativeThreadLinux &thread,
bool exited);
- Error SetupSoftwareSingleStepping(NativeThreadLinux &thread);
+ Status SetupSoftwareSingleStepping(NativeThreadLinux &thread);
#if 0
static ::ProcessMessage::CrashReason
@@ -189,22 +190,22 @@ private:
NativeThreadLinuxSP AddThread(lldb::tid_t thread_id);
- Error GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
+ Status GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
- Error FixupBreakpointPCAsNeeded(NativeThreadLinux &thread);
+ Status FixupBreakpointPCAsNeeded(NativeThreadLinux &thread);
/// Writes a siginfo_t structure corresponding to the given thread ID to the
/// memory region pointed to by @p siginfo.
- Error GetSignalInfo(lldb::tid_t tid, void *siginfo);
+ Status GetSignalInfo(lldb::tid_t tid, void *siginfo);
/// Writes the raw event message code (vis-a-vis PTRACE_GETEVENTMSG)
/// corresponding to the given thread ID to the memory pointed to by @p
/// message.
- Error GetEventMessage(lldb::tid_t tid, unsigned long *message);
+ Status GetEventMessage(lldb::tid_t tid, unsigned long *message);
void NotifyThreadDeath(lldb::tid_t tid);
- Error Detach(lldb::tid_t tid);
+ Status Detach(lldb::tid_t tid);
// This method is requests a stop on all threads which are still running. It
// sets up a
@@ -219,14 +220,14 @@ private:
// Resume the given thread, optionally passing it the given signal. The type
// of resume
// operation (continue, single-step) depends on the state parameter.
- Error ResumeThread(NativeThreadLinux &thread, lldb::StateType state,
- int signo);
+ Status ResumeThread(NativeThreadLinux &thread, lldb::StateType state,
+ int signo);
void ThreadWasCreated(NativeThreadLinux &thread);
void SigchldHandler();
- Error PopulateMemoryRegionCache();
+ Status PopulateMemoryRegionCache();
};
} // namespace process_linux
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp
index be256e972215..43253f388019 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp
@@ -41,18 +41,19 @@ lldb::ByteOrder NativeRegisterContextLinux::GetByteOrder() const {
return byte_order;
}
-Error NativeRegisterContextLinux::ReadRegisterRaw(uint32_t reg_index,
- RegisterValue &reg_value) {
+Status NativeRegisterContextLinux::ReadRegisterRaw(uint32_t reg_index,
+ RegisterValue &reg_value) {
const RegisterInfo *const reg_info = GetRegisterInfoAtIndex(reg_index);
if (!reg_info)
- return Error("register %" PRIu32 " not found", reg_index);
+ return Status("register %" PRIu32 " not found", reg_index);
return DoReadRegisterValue(reg_info->byte_offset, reg_info->name,
reg_info->byte_size, reg_value);
}
-Error NativeRegisterContextLinux::WriteRegisterRaw(
- uint32_t reg_index, const RegisterValue &reg_value) {
+Status
+NativeRegisterContextLinux::WriteRegisterRaw(uint32_t reg_index,
+ const RegisterValue &reg_value) {
uint32_t reg_to_write = reg_index;
RegisterValue value_to_write = reg_value;
@@ -60,7 +61,7 @@ Error NativeRegisterContextLinux::WriteRegisterRaw(
const RegisterInfo *reg_info = GetRegisterInfoAtIndex(reg_index);
if (reg_info->invalidate_regs &&
(reg_info->invalidate_regs[0] != LLDB_INVALID_REGNUM)) {
- Error error;
+ Status error;
RegisterValue full_value;
uint32_t full_reg = reg_info->invalidate_regs[0];
@@ -99,71 +100,71 @@ Error NativeRegisterContextLinux::WriteRegisterRaw(
assert(register_to_write_info_p &&
"register to write does not have valid RegisterInfo");
if (!register_to_write_info_p)
- return Error("NativeRegisterContextLinux::%s failed to get RegisterInfo "
- "for write register index %" PRIu32,
- __FUNCTION__, reg_to_write);
+ return Status("NativeRegisterContextLinux::%s failed to get RegisterInfo "
+ "for write register index %" PRIu32,
+ __FUNCTION__, reg_to_write);
return DoWriteRegisterValue(reg_info->byte_offset, reg_info->name, reg_value);
}
-Error NativeRegisterContextLinux::ReadGPR() {
+Status NativeRegisterContextLinux::ReadGPR() {
void *buf = GetGPRBuffer();
if (!buf)
- return Error("GPR buffer is NULL");
+ return Status("GPR buffer is NULL");
size_t buf_size = GetGPRSize();
return DoReadGPR(buf, buf_size);
}
-Error NativeRegisterContextLinux::WriteGPR() {
+Status NativeRegisterContextLinux::WriteGPR() {
void *buf = GetGPRBuffer();
if (!buf)
- return Error("GPR buffer is NULL");
+ return Status("GPR buffer is NULL");
size_t buf_size = GetGPRSize();
return DoWriteGPR(buf, buf_size);
}
-Error NativeRegisterContextLinux::ReadFPR() {
+Status NativeRegisterContextLinux::ReadFPR() {
void *buf = GetFPRBuffer();
if (!buf)
- return Error("FPR buffer is NULL");
+ return Status("FPR buffer is NULL");
size_t buf_size = GetFPRSize();
return DoReadFPR(buf, buf_size);
}
-Error NativeRegisterContextLinux::WriteFPR() {
+Status NativeRegisterContextLinux::WriteFPR() {
void *buf = GetFPRBuffer();
if (!buf)
- return Error("FPR buffer is NULL");
+ return Status("FPR buffer is NULL");
size_t buf_size = GetFPRSize();
return DoWriteFPR(buf, buf_size);
}
-Error NativeRegisterContextLinux::ReadRegisterSet(void *buf, size_t buf_size,
- unsigned int regset) {
+Status NativeRegisterContextLinux::ReadRegisterSet(void *buf, size_t buf_size,
+ unsigned int regset) {
return NativeProcessLinux::PtraceWrapper(PTRACE_GETREGSET, m_thread.GetID(),
static_cast<void *>(&regset), buf,
buf_size);
}
-Error NativeRegisterContextLinux::WriteRegisterSet(void *buf, size_t buf_size,
- unsigned int regset) {
+Status NativeRegisterContextLinux::WriteRegisterSet(void *buf, size_t buf_size,
+ unsigned int regset) {
return NativeProcessLinux::PtraceWrapper(PTRACE_SETREGSET, m_thread.GetID(),
static_cast<void *>(&regset), buf,
buf_size);
}
-Error NativeRegisterContextLinux::DoReadRegisterValue(uint32_t offset,
- const char *reg_name,
- uint32_t size,
- RegisterValue &value) {
+Status NativeRegisterContextLinux::DoReadRegisterValue(uint32_t offset,
+ const char *reg_name,
+ uint32_t size,
+ RegisterValue &value) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_REGISTERS));
long data;
- Error error = NativeProcessLinux::PtraceWrapper(
+ Status error = NativeProcessLinux::PtraceWrapper(
PTRACE_PEEKUSER, m_thread.GetID(), reinterpret_cast<void *>(offset),
nullptr, 0, &data);
@@ -175,7 +176,7 @@ Error NativeRegisterContextLinux::DoReadRegisterValue(uint32_t offset,
return error;
}
-Error NativeRegisterContextLinux::DoWriteRegisterValue(
+Status NativeRegisterContextLinux::DoWriteRegisterValue(
uint32_t offset, const char *reg_name, const RegisterValue &value) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_REGISTERS));
@@ -186,22 +187,22 @@ Error NativeRegisterContextLinux::DoWriteRegisterValue(
PTRACE_POKEUSER, m_thread.GetID(), reinterpret_cast<void *>(offset), buf);
}
-Error NativeRegisterContextLinux::DoReadGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux::DoReadGPR(void *buf, size_t buf_size) {
return NativeProcessLinux::PtraceWrapper(PTRACE_GETREGS, m_thread.GetID(),
nullptr, buf, buf_size);
}
-Error NativeRegisterContextLinux::DoWriteGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux::DoWriteGPR(void *buf, size_t buf_size) {
return NativeProcessLinux::PtraceWrapper(PTRACE_SETREGS, m_thread.GetID(),
nullptr, buf, buf_size);
}
-Error NativeRegisterContextLinux::DoReadFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux::DoReadFPR(void *buf, size_t buf_size) {
return NativeProcessLinux::PtraceWrapper(PTRACE_GETFPREGS, m_thread.GetID(),
nullptr, buf, buf_size);
}
-Error NativeRegisterContextLinux::DoWriteFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux::DoWriteFPR(void *buf, size_t buf_size) {
return NativeProcessLinux::PtraceWrapper(PTRACE_SETFPREGS, m_thread.GetID(),
nullptr, buf, buf_size);
}
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
index 4dfc5365f357..26074a6ce0e3 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
@@ -39,24 +39,24 @@ public:
protected:
lldb::ByteOrder GetByteOrder() const;
- virtual Error ReadRegisterRaw(uint32_t reg_index, RegisterValue &reg_value);
+ virtual Status ReadRegisterRaw(uint32_t reg_index, RegisterValue &reg_value);
- virtual Error WriteRegisterRaw(uint32_t reg_index,
- const RegisterValue &reg_value);
+ virtual Status WriteRegisterRaw(uint32_t reg_index,
+ const RegisterValue &reg_value);
- virtual Error ReadRegisterSet(void *buf, size_t buf_size,
- unsigned int regset);
-
- virtual Error WriteRegisterSet(void *buf, size_t buf_size,
+ virtual Status ReadRegisterSet(void *buf, size_t buf_size,
unsigned int regset);
- virtual Error ReadGPR();
+ virtual Status WriteRegisterSet(void *buf, size_t buf_size,
+ unsigned int regset);
+
+ virtual Status ReadGPR();
- virtual Error WriteGPR();
+ virtual Status WriteGPR();
- virtual Error ReadFPR();
+ virtual Status ReadFPR();
- virtual Error WriteFPR();
+ virtual Status WriteFPR();
virtual void *GetGPRBuffer() { return nullptr; }
@@ -71,19 +71,19 @@ protected:
// The Do*** functions are executed on the privileged thread and can perform
// ptrace
// operations directly.
- virtual Error DoReadRegisterValue(uint32_t offset, const char *reg_name,
- uint32_t size, RegisterValue &value);
+ virtual Status DoReadRegisterValue(uint32_t offset, const char *reg_name,
+ uint32_t size, RegisterValue &value);
- virtual Error DoWriteRegisterValue(uint32_t offset, const char *reg_name,
- const RegisterValue &value);
+ virtual Status DoWriteRegisterValue(uint32_t offset, const char *reg_name,
+ const RegisterValue &value);
- virtual Error DoReadGPR(void *buf, size_t buf_size);
+ virtual Status DoReadGPR(void *buf, size_t buf_size);
- virtual Error DoWriteGPR(void *buf, size_t buf_size);
+ virtual Status DoWriteGPR(void *buf, size_t buf_size);
- virtual Error DoReadFPR(void *buf, size_t buf_size);
+ virtual Status DoReadFPR(void *buf, size_t buf_size);
- virtual Error DoWriteFPR(void *buf, size_t buf_size);
+ virtual Status DoWriteFPR(void *buf, size_t buf_size);
};
} // namespace process_linux
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
index 2dd23ad75a03..22b7d10869fe 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
@@ -13,8 +13,8 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Linux/Procfs.h"
#include "Plugins/Process/POSIX/ProcessPOSIXLog.h"
@@ -157,9 +157,10 @@ NativeRegisterContextLinux_arm::GetRegisterSet(uint32_t set_index) const {
return nullptr;
}
-Error NativeRegisterContextLinux_arm::ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) {
- Error error;
+Status
+NativeRegisterContextLinux_arm::ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) {
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -226,16 +227,17 @@ Error NativeRegisterContextLinux_arm::ReadRegister(const RegisterInfo *reg_info,
return error;
}
-Error NativeRegisterContextLinux_arm::WriteRegister(
- const RegisterInfo *reg_info, const RegisterValue &reg_value) {
+Status
+NativeRegisterContextLinux_arm::WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) {
if (!reg_info)
- return Error("reg_info NULL");
+ return Status("reg_info NULL");
const uint32_t reg_index = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg_index == LLDB_INVALID_REGNUM)
- return Error("no lldb regnum for %s", reg_info && reg_info->name
- ? reg_info->name
- : "<unknown register>");
+ return Status("no lldb regnum for %s", reg_info && reg_info->name
+ ? reg_info->name
+ : "<unknown register>");
if (IsGPR(reg_index))
return WriteRegisterRaw(reg_index, reg_value);
@@ -257,29 +259,29 @@ Error NativeRegisterContextLinux_arm::WriteRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled register data size %" PRIu32,
- reg_info->byte_size);
+ return Status("unhandled register data size %" PRIu32,
+ reg_info->byte_size);
}
- Error error = WriteFPR();
+ Status error = WriteFPR();
if (error.Fail())
return error;
- return Error();
+ return Status();
}
- return Error("failed - register wasn't recognized to be a GPR or an FPR, "
- "write strategy unknown");
+ return Status("failed - register wasn't recognized to be a GPR or an FPR, "
+ "write strategy unknown");
}
-Error NativeRegisterContextLinux_arm::ReadAllRegisterValues(
+Status NativeRegisterContextLinux_arm::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp)
- return Error("failed to allocate DataBufferHeap instance of size %" PRIu64,
- (uint64_t)REG_CONTEXT_SIZE);
+ return Status("failed to allocate DataBufferHeap instance of size %" PRIu64,
+ (uint64_t)REG_CONTEXT_SIZE);
error = ReadGPR();
if (error.Fail())
@@ -304,9 +306,9 @@ Error NativeRegisterContextLinux_arm::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_arm::WriteAllRegisterValues(
+Status NativeRegisterContextLinux_arm::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -361,7 +363,7 @@ uint32_t NativeRegisterContextLinux_arm::NumSupportedHardwareBreakpoints() {
if (log)
log->Printf("NativeRegisterContextLinux_arm::%s()", __FUNCTION__);
- Error error;
+ Status error;
// Read hardware breakpoint and watchpoint information.
error = ReadHardwareDebugInfo();
@@ -380,7 +382,7 @@ NativeRegisterContextLinux_arm::SetHardwareBreakpoint(lldb::addr_t addr,
LLDB_LOG(log, "addr: {0:x}, size: {1:x}", addr, size);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return LLDB_INVALID_INDEX32;
@@ -438,7 +440,7 @@ bool NativeRegisterContextLinux_arm::ClearHardwareBreakpoint(uint32_t hw_idx) {
LLDB_LOG(log, "hw_idx: {0}", hw_idx);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return false;
@@ -466,7 +468,7 @@ bool NativeRegisterContextLinux_arm::ClearHardwareBreakpoint(uint32_t hw_idx) {
return true;
}
-Error NativeRegisterContextLinux_arm::GetHardwareBreakHitIndex(
+Status NativeRegisterContextLinux_arm::GetHardwareBreakHitIndex(
uint32_t &bp_index, lldb::addr_t trap_addr) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
@@ -480,21 +482,21 @@ Error NativeRegisterContextLinux_arm::GetHardwareBreakHitIndex(
if ((m_hbr_regs[bp_index].control & 0x1) && (trap_addr == break_addr)) {
m_hbr_regs[bp_index].hit_addr = trap_addr;
- return Error();
+ return Status();
}
}
bp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_arm::ClearAllHardwareBreakpoints() {
+Status NativeRegisterContextLinux_arm::ClearAllHardwareBreakpoints() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
if (log)
log->Printf("NativeRegisterContextLinux_arm::%s()", __FUNCTION__);
- Error error;
+ Status error;
// Read hardware breakpoint and watchpoint information.
error = ReadHardwareDebugInfo();
@@ -527,14 +529,14 @@ Error NativeRegisterContextLinux_arm::ClearAllHardwareBreakpoints() {
}
}
- return Error();
+ return Status();
}
uint32_t NativeRegisterContextLinux_arm::NumSupportedHardwareWatchpoints() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_WATCHPOINTS));
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return 0;
@@ -550,7 +552,7 @@ uint32_t NativeRegisterContextLinux_arm::SetHardwareWatchpoint(
watch_flags);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return LLDB_INVALID_INDEX32;
@@ -654,7 +656,7 @@ bool NativeRegisterContextLinux_arm::ClearHardwareWatchpoint(
LLDB_LOG(log, "wp_index: {0}", wp_index);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return false;
@@ -683,9 +685,9 @@ bool NativeRegisterContextLinux_arm::ClearHardwareWatchpoint(
return true;
}
-Error NativeRegisterContextLinux_arm::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextLinux_arm::ClearAllHardwareWatchpoints() {
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return error;
@@ -715,7 +717,7 @@ Error NativeRegisterContextLinux_arm::ClearAllHardwareWatchpoints() {
}
}
- return Error();
+ return Status();
}
uint32_t NativeRegisterContextLinux_arm::GetWatchpointSize(uint32_t wp_index) {
@@ -745,8 +747,9 @@ bool NativeRegisterContextLinux_arm::WatchpointIsEnabled(uint32_t wp_index) {
return false;
}
-Error NativeRegisterContextLinux_arm::GetWatchpointHitIndex(
- uint32_t &wp_index, lldb::addr_t trap_addr) {
+Status
+NativeRegisterContextLinux_arm::GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_WATCHPOINTS));
LLDB_LOG(log, "wp_index: {0}, trap_addr: {1:x}", wp_index, trap_addr);
@@ -760,12 +763,12 @@ Error NativeRegisterContextLinux_arm::GetWatchpointHitIndex(
if (WatchpointIsEnabled(wp_index) && trap_addr >= watch_addr &&
trap_addr < watch_addr + watch_size) {
m_hwp_regs[wp_index].hit_addr = trap_addr;
- return Error();
+ return Status();
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
lldb::addr_t
@@ -796,11 +799,11 @@ NativeRegisterContextLinux_arm::GetWatchpointHitAddress(uint32_t wp_index) {
return LLDB_INVALID_ADDRESS;
}
-Error NativeRegisterContextLinux_arm::ReadHardwareDebugInfo() {
- Error error;
+Status NativeRegisterContextLinux_arm::ReadHardwareDebugInfo() {
+ Status error;
if (!m_refresh_hwdebug_info) {
- return Error();
+ return Status();
}
unsigned int cap_val;
@@ -819,9 +822,9 @@ Error NativeRegisterContextLinux_arm::ReadHardwareDebugInfo() {
return error;
}
-Error NativeRegisterContextLinux_arm::WriteHardwareDebugRegs(int hwbType,
- int hwb_index) {
- Error error;
+Status NativeRegisterContextLinux_arm::WriteHardwareDebugRegs(int hwbType,
+ int hwb_index) {
+ Status error;
lldb::addr_t *addr_buf;
uint32_t *ctrl_buf;
@@ -869,7 +872,7 @@ uint32_t NativeRegisterContextLinux_arm::CalculateFprOffset(
GetRegisterInfoAtIndex(m_reg_info.first_fpr)->byte_offset;
}
-Error NativeRegisterContextLinux_arm::DoReadRegisterValue(
+Status NativeRegisterContextLinux_arm::DoReadRegisterValue(
uint32_t offset, const char *reg_name, uint32_t size,
RegisterValue &value) {
// PTRACE_PEEKUSER don't work in the aarch64 linux kernel used on android
@@ -881,17 +884,17 @@ Error NativeRegisterContextLinux_arm::DoReadRegisterValue(
// comparision to processing time in lldb-server.
assert(offset % 4 == 0 && "Try to write a register with unaligned offset");
if (offset + sizeof(uint32_t) > sizeof(m_gpr_arm))
- return Error("Register isn't fit into the size of the GPR area");
+ return Status("Register isn't fit into the size of the GPR area");
- Error error = DoReadGPR(m_gpr_arm, sizeof(m_gpr_arm));
+ Status error = DoReadGPR(m_gpr_arm, sizeof(m_gpr_arm));
if (error.Fail())
return error;
value.SetUInt32(m_gpr_arm[offset / sizeof(uint32_t)]);
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_arm::DoWriteRegisterValue(
+Status NativeRegisterContextLinux_arm::DoWriteRegisterValue(
uint32_t offset, const char *reg_name, const RegisterValue &value) {
// PTRACE_POKEUSER don't work in the aarch64 linux kernel used on android
// devices (always return
@@ -903,9 +906,9 @@ Error NativeRegisterContextLinux_arm::DoWriteRegisterValue(
// lldb-server.
assert(offset % 4 == 0 && "Try to write a register with unaligned offset");
if (offset + sizeof(uint32_t) > sizeof(m_gpr_arm))
- return Error("Register isn't fit into the size of the GPR area");
+ return Status("Register isn't fit into the size of the GPR area");
- Error error = DoReadGPR(m_gpr_arm, sizeof(m_gpr_arm));
+ Status error = DoReadGPR(m_gpr_arm, sizeof(m_gpr_arm));
if (error.Fail())
return error;
@@ -927,7 +930,7 @@ Error NativeRegisterContextLinux_arm::DoWriteRegisterValue(
return DoWriteGPR(m_gpr_arm, sizeof(m_gpr_arm));
}
-Error NativeRegisterContextLinux_arm::DoReadGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm::DoReadGPR(void *buf, size_t buf_size) {
#ifdef __arm__
return NativeRegisterContextLinux::DoReadGPR(buf, buf_size);
#else // __aarch64__
@@ -939,7 +942,7 @@ Error NativeRegisterContextLinux_arm::DoReadGPR(void *buf, size_t buf_size) {
#endif // __arm__
}
-Error NativeRegisterContextLinux_arm::DoWriteGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm::DoWriteGPR(void *buf, size_t buf_size) {
#ifdef __arm__
return NativeRegisterContextLinux::DoWriteGPR(buf, buf_size);
#else // __aarch64__
@@ -951,7 +954,7 @@ Error NativeRegisterContextLinux_arm::DoWriteGPR(void *buf, size_t buf_size) {
#endif // __arm__
}
-Error NativeRegisterContextLinux_arm::DoReadFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm::DoReadFPR(void *buf, size_t buf_size) {
#ifdef __arm__
return NativeProcessLinux::PtraceWrapper(PTRACE_GETVFPREGS, m_thread.GetID(),
nullptr, buf, buf_size);
@@ -964,7 +967,7 @@ Error NativeRegisterContextLinux_arm::DoReadFPR(void *buf, size_t buf_size) {
#endif // __arm__
}
-Error NativeRegisterContextLinux_arm::DoWriteFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm::DoWriteFPR(void *buf, size_t buf_size) {
#ifdef __arm__
return NativeProcessLinux::PtraceWrapper(PTRACE_SETVFPREGS, m_thread.GetID(),
nullptr, buf, buf_size);
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
index 824ac88ad9ef..ec99c05e1644 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
@@ -32,15 +32,15 @@ public:
uint32_t GetUserRegisterCount() const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
//------------------------------------------------------------------
// Hardware breakpoints/watchpoint mangement functions
@@ -52,10 +52,10 @@ public:
bool ClearHardwareBreakpoint(uint32_t hw_idx) override;
- Error ClearAllHardwareBreakpoints() override;
+ Status ClearAllHardwareBreakpoints() override;
- Error GetHardwareBreakHitIndex(uint32_t &bp_index,
- lldb::addr_t trap_addr) override;
+ Status GetHardwareBreakHitIndex(uint32_t &bp_index,
+ lldb::addr_t trap_addr) override;
uint32_t NumSupportedHardwareWatchpoints() override;
@@ -64,10 +64,10 @@ public:
bool ClearHardwareWatchpoint(uint32_t hw_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
lldb::addr_t GetWatchpointHitAddress(uint32_t wp_index) override;
@@ -81,19 +81,19 @@ public:
enum DREGType { eDREGTypeWATCH = 0, eDREGTypeBREAK };
protected:
- Error DoReadRegisterValue(uint32_t offset, const char *reg_name,
- uint32_t size, RegisterValue &value) override;
+ Status DoReadRegisterValue(uint32_t offset, const char *reg_name,
+ uint32_t size, RegisterValue &value) override;
- Error DoWriteRegisterValue(uint32_t offset, const char *reg_name,
- const RegisterValue &value) override;
+ Status DoWriteRegisterValue(uint32_t offset, const char *reg_name,
+ const RegisterValue &value) override;
- Error DoReadGPR(void *buf, size_t buf_size) override;
+ Status DoReadGPR(void *buf, size_t buf_size) override;
- Error DoWriteGPR(void *buf, size_t buf_size) override;
+ Status DoWriteGPR(void *buf, size_t buf_size) override;
- Error DoReadFPR(void *buf, size_t buf_size) override;
+ Status DoReadFPR(void *buf, size_t buf_size) override;
- Error DoWriteFPR(void *buf, size_t buf_size) override;
+ Status DoWriteFPR(void *buf, size_t buf_size) override;
void *GetGPRBuffer() override { return &m_gpr_arm; }
@@ -155,9 +155,9 @@ private:
bool IsFPR(unsigned reg) const;
- Error ReadHardwareDebugInfo();
+ Status ReadHardwareDebugInfo();
- Error WriteHardwareDebugRegs(int hwbType, int hwb_index);
+ Status WriteHardwareDebugRegs(int hwbType, int hwb_index);
uint32_t CalculateFprOffset(const RegisterInfo *reg_info) const;
};
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index f3715147fa3e..c3b58f16256a 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -19,8 +19,8 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/common/NativeProcessProtocol.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Linux/NativeProcessLinux.h"
#include "Plugins/Process/Linux/Procfs.h"
@@ -180,9 +180,10 @@ uint32_t NativeRegisterContextLinux_arm64::GetUserRegisterCount() const {
return count;
}
-Error NativeRegisterContextLinux_arm64::ReadRegister(
- const RegisterInfo *reg_info, RegisterValue &reg_value) {
- Error error;
+Status
+NativeRegisterContextLinux_arm64::ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) {
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -232,16 +233,16 @@ Error NativeRegisterContextLinux_arm64::ReadRegister(
return error;
}
-Error NativeRegisterContextLinux_arm64::WriteRegister(
+Status NativeRegisterContextLinux_arm64::WriteRegister(
const RegisterInfo *reg_info, const RegisterValue &reg_value) {
if (!reg_info)
- return Error("reg_info NULL");
+ return Status("reg_info NULL");
const uint32_t reg_index = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg_index == LLDB_INVALID_REGNUM)
- return Error("no lldb regnum for %s", reg_info && reg_info->name
- ? reg_info->name
- : "<unknown register>");
+ return Status("no lldb regnum for %s", reg_info && reg_info->name
+ ? reg_info->name
+ : "<unknown register>");
if (IsGPR(reg_index))
return WriteRegisterRaw(reg_index, reg_value);
@@ -263,29 +264,29 @@ Error NativeRegisterContextLinux_arm64::WriteRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled register data size %" PRIu32,
- reg_info->byte_size);
+ return Status("unhandled register data size %" PRIu32,
+ reg_info->byte_size);
}
- Error error = WriteFPR();
+ Status error = WriteFPR();
if (error.Fail())
return error;
- return Error();
+ return Status();
}
- return Error("failed - register wasn't recognized to be a GPR or an FPR, "
- "write strategy unknown");
+ return Status("failed - register wasn't recognized to be a GPR or an FPR, "
+ "write strategy unknown");
}
-Error NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
+Status NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp)
- return Error("failed to allocate DataBufferHeap instance of size %" PRIu64,
- REG_CONTEXT_SIZE);
+ return Status("failed to allocate DataBufferHeap instance of size %" PRIu64,
+ REG_CONTEXT_SIZE);
error = ReadGPR();
if (error.Fail())
@@ -310,9 +311,9 @@ Error NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
+Status NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -367,7 +368,7 @@ uint32_t NativeRegisterContextLinux_arm64::NumSupportedHardwareBreakpoints() {
if (log)
log->Printf("NativeRegisterContextLinux_arm64::%s()", __FUNCTION__);
- Error error;
+ Status error;
// Read hardware breakpoint and watchpoint information.
error = ReadHardwareDebugInfo();
@@ -385,7 +386,7 @@ NativeRegisterContextLinux_arm64::SetHardwareBreakpoint(lldb::addr_t addr,
LLDB_LOG(log, "addr: {0:x}, size: {1:x}", addr, size);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return LLDB_INVALID_INDEX32;
@@ -443,7 +444,7 @@ bool NativeRegisterContextLinux_arm64::ClearHardwareBreakpoint(
LLDB_LOG(log, "hw_idx: {0}", hw_idx);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return false;
@@ -471,7 +472,7 @@ bool NativeRegisterContextLinux_arm64::ClearHardwareBreakpoint(
return true;
}
-Error NativeRegisterContextLinux_arm64::GetHardwareBreakHitIndex(
+Status NativeRegisterContextLinux_arm64::GetHardwareBreakHitIndex(
uint32_t &bp_index, lldb::addr_t trap_addr) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
@@ -485,21 +486,21 @@ Error NativeRegisterContextLinux_arm64::GetHardwareBreakHitIndex(
if ((m_hbr_regs[bp_index].control & 0x1) && (trap_addr == break_addr)) {
m_hbr_regs[bp_index].hit_addr = trap_addr;
- return Error();
+ return Status();
}
}
bp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_arm64::ClearAllHardwareBreakpoints() {
+Status NativeRegisterContextLinux_arm64::ClearAllHardwareBreakpoints() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
if (log)
log->Printf("NativeRegisterContextLinux_arm64::%s()", __FUNCTION__);
- Error error;
+ Status error;
// Read hardware breakpoint and watchpoint information.
error = ReadHardwareDebugInfo();
@@ -532,14 +533,14 @@ Error NativeRegisterContextLinux_arm64::ClearAllHardwareBreakpoints() {
}
}
- return Error();
+ return Status();
}
uint32_t NativeRegisterContextLinux_arm64::NumSupportedHardwareWatchpoints() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_WATCHPOINTS));
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return 0;
@@ -555,7 +556,7 @@ uint32_t NativeRegisterContextLinux_arm64::SetHardwareWatchpoint(
watch_flags);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return LLDB_INVALID_INDEX32;
@@ -642,7 +643,7 @@ bool NativeRegisterContextLinux_arm64::ClearHardwareWatchpoint(
LLDB_LOG(log, "wp_index: {0}", wp_index);
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return false;
@@ -671,9 +672,9 @@ bool NativeRegisterContextLinux_arm64::ClearHardwareWatchpoint(
return true;
}
-Error NativeRegisterContextLinux_arm64::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextLinux_arm64::ClearAllHardwareWatchpoints() {
// Read hardware breakpoint and watchpoint information.
- Error error = ReadHardwareDebugInfo();
+ Status error = ReadHardwareDebugInfo();
if (error.Fail())
return error;
@@ -703,7 +704,7 @@ Error NativeRegisterContextLinux_arm64::ClearAllHardwareWatchpoints() {
}
}
- return Error();
+ return Status();
}
uint32_t
@@ -734,7 +735,7 @@ bool NativeRegisterContextLinux_arm64::WatchpointIsEnabled(uint32_t wp_index) {
return false;
}
-Error NativeRegisterContextLinux_arm64::GetWatchpointHitIndex(
+Status NativeRegisterContextLinux_arm64::GetWatchpointHitIndex(
uint32_t &wp_index, lldb::addr_t trap_addr) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_WATCHPOINTS));
LLDB_LOG(log, "wp_index: {0}, trap_addr: {1:x}", wp_index, trap_addr);
@@ -749,12 +750,12 @@ Error NativeRegisterContextLinux_arm64::GetWatchpointHitIndex(
if (WatchpointIsEnabled(wp_index) && trap_addr >= watch_addr &&
trap_addr < watch_addr + watch_size) {
m_hwp_regs[wp_index].hit_addr = trap_addr;
- return Error();
+ return Status();
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
lldb::addr_t
@@ -785,9 +786,9 @@ NativeRegisterContextLinux_arm64::GetWatchpointHitAddress(uint32_t wp_index) {
return LLDB_INVALID_ADDRESS;
}
-Error NativeRegisterContextLinux_arm64::ReadHardwareDebugInfo() {
+Status NativeRegisterContextLinux_arm64::ReadHardwareDebugInfo() {
if (!m_refresh_hwdebug_info) {
- return Error();
+ return Status();
}
::pid_t tid = m_thread.GetID();
@@ -795,7 +796,7 @@ Error NativeRegisterContextLinux_arm64::ReadHardwareDebugInfo() {
int regset = NT_ARM_HW_WATCH;
struct iovec ioVec;
struct user_hwdebug_state dreg_state;
- Error error;
+ Status error;
ioVec.iov_base = &dreg_state;
ioVec.iov_len = sizeof(dreg_state);
@@ -820,10 +821,10 @@ Error NativeRegisterContextLinux_arm64::ReadHardwareDebugInfo() {
return error;
}
-Error NativeRegisterContextLinux_arm64::WriteHardwareDebugRegs(int hwbType) {
+Status NativeRegisterContextLinux_arm64::WriteHardwareDebugRegs(int hwbType) {
struct iovec ioVec;
struct user_hwdebug_state dreg_state;
- Error error;
+ Status error;
memset(&dreg_state, 0, sizeof(dreg_state));
ioVec.iov_base = &dreg_state;
@@ -852,10 +853,10 @@ Error NativeRegisterContextLinux_arm64::WriteHardwareDebugRegs(int hwbType) {
&hwbType, &ioVec, ioVec.iov_len);
}
-Error NativeRegisterContextLinux_arm64::DoReadRegisterValue(
+Status NativeRegisterContextLinux_arm64::DoReadRegisterValue(
uint32_t offset, const char *reg_name, uint32_t size,
RegisterValue &value) {
- Error error;
+ Status error;
if (offset > sizeof(struct user_pt_regs)) {
uintptr_t offset = offset - sizeof(struct user_pt_regs);
if (offset > sizeof(struct user_fpsimd_state)) {
@@ -899,9 +900,9 @@ Error NativeRegisterContextLinux_arm64::DoReadRegisterValue(
return error;
}
-Error NativeRegisterContextLinux_arm64::DoWriteRegisterValue(
+Status NativeRegisterContextLinux_arm64::DoWriteRegisterValue(
uint32_t offset, const char *reg_name, const RegisterValue &value) {
- Error error;
+ Status error;
::pid_t tid = m_thread.GetID();
if (offset > sizeof(struct user_pt_regs)) {
uintptr_t offset = offset - sizeof(struct user_pt_regs);
@@ -943,10 +944,10 @@ Error NativeRegisterContextLinux_arm64::DoWriteRegisterValue(
return error;
}
-Error NativeRegisterContextLinux_arm64::DoReadGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm64::DoReadGPR(void *buf, size_t buf_size) {
int regset = NT_PRSTATUS;
struct iovec ioVec;
- Error error;
+ Status error;
ioVec.iov_base = buf;
ioVec.iov_len = buf_size;
@@ -954,10 +955,11 @@ Error NativeRegisterContextLinux_arm64::DoReadGPR(void *buf, size_t buf_size) {
&regset, &ioVec, buf_size);
}
-Error NativeRegisterContextLinux_arm64::DoWriteGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm64::DoWriteGPR(void *buf,
+ size_t buf_size) {
int regset = NT_PRSTATUS;
struct iovec ioVec;
- Error error;
+ Status error;
ioVec.iov_base = buf;
ioVec.iov_len = buf_size;
@@ -965,10 +967,10 @@ Error NativeRegisterContextLinux_arm64::DoWriteGPR(void *buf, size_t buf_size) {
&regset, &ioVec, buf_size);
}
-Error NativeRegisterContextLinux_arm64::DoReadFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm64::DoReadFPR(void *buf, size_t buf_size) {
int regset = NT_FPREGSET;
struct iovec ioVec;
- Error error;
+ Status error;
ioVec.iov_base = buf;
ioVec.iov_len = buf_size;
@@ -976,10 +978,11 @@ Error NativeRegisterContextLinux_arm64::DoReadFPR(void *buf, size_t buf_size) {
&regset, &ioVec, buf_size);
}
-Error NativeRegisterContextLinux_arm64::DoWriteFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_arm64::DoWriteFPR(void *buf,
+ size_t buf_size) {
int regset = NT_FPREGSET;
struct iovec ioVec;
- Error error;
+ Status error;
ioVec.iov_base = buf;
ioVec.iov_len = buf_size;
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 4ffbd97ee33a..9877dec37c48 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -32,15 +32,15 @@ public:
const RegisterSet *GetRegisterSet(uint32_t set_index) const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
//------------------------------------------------------------------
// Hardware breakpoints/watchpoint mangement functions
@@ -52,10 +52,10 @@ public:
bool ClearHardwareBreakpoint(uint32_t hw_idx) override;
- Error ClearAllHardwareBreakpoints() override;
+ Status ClearAllHardwareBreakpoints() override;
- Error GetHardwareBreakHitIndex(uint32_t &bp_index,
- lldb::addr_t trap_addr) override;
+ Status GetHardwareBreakHitIndex(uint32_t &bp_index,
+ lldb::addr_t trap_addr) override;
uint32_t NumSupportedHardwareWatchpoints() override;
@@ -64,10 +64,10 @@ public:
bool ClearHardwareWatchpoint(uint32_t hw_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
lldb::addr_t GetWatchpointHitAddress(uint32_t wp_index) override;
@@ -81,19 +81,19 @@ public:
enum DREGType { eDREGTypeWATCH = 0, eDREGTypeBREAK };
protected:
- Error DoReadRegisterValue(uint32_t offset, const char *reg_name,
- uint32_t size, RegisterValue &value) override;
+ Status DoReadRegisterValue(uint32_t offset, const char *reg_name,
+ uint32_t size, RegisterValue &value) override;
- Error DoWriteRegisterValue(uint32_t offset, const char *reg_name,
- const RegisterValue &value) override;
+ Status DoWriteRegisterValue(uint32_t offset, const char *reg_name,
+ const RegisterValue &value) override;
- Error DoReadGPR(void *buf, size_t buf_size) override;
+ Status DoReadGPR(void *buf, size_t buf_size) override;
- Error DoWriteGPR(void *buf, size_t buf_size) override;
+ Status DoWriteGPR(void *buf, size_t buf_size) override;
- Error DoReadFPR(void *buf, size_t buf_size) override;
+ Status DoReadFPR(void *buf, size_t buf_size) override;
- Error DoWriteFPR(void *buf, size_t buf_size) override;
+ Status DoWriteFPR(void *buf, size_t buf_size) override;
void *GetGPRBuffer() override { return &m_gpr_arm64; }
@@ -155,9 +155,9 @@ private:
bool IsFPR(unsigned reg) const;
- Error ReadHardwareDebugInfo();
+ Status ReadHardwareDebugInfo();
- Error WriteHardwareDebugRegs(int hwbType);
+ Status WriteHardwareDebugRegs(int hwbType);
uint32_t CalculateFprOffset(const RegisterInfo *reg_info) const;
};
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
index 7c5c42477170..dee2c064a346 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp
@@ -25,9 +25,9 @@
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-private-enumerations.h"
#define NT_MIPS_MSA 0x600
@@ -178,7 +178,7 @@ uint32_t NativeRegisterContextLinux_mips64::GetRegisterSetCount() const {
lldb::addr_t NativeRegisterContextLinux_mips64::GetPCfromBreakpointLocation(
lldb::addr_t fail_value) {
- Error error;
+ Status error;
RegisterValue pc_value;
lldb::addr_t pc = fail_value;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
@@ -244,10 +244,10 @@ NativeRegisterContextLinux_mips64::GetRegisterSet(uint32_t set_index) const {
}
}
-lldb_private::Error
+lldb_private::Status
NativeRegisterContextLinux_mips64::ReadRegister(const RegisterInfo *reg_info,
RegisterValue &reg_value) {
- Error error;
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -315,18 +315,18 @@ NativeRegisterContextLinux_mips64::ReadRegister(const RegisterInfo *reg_info,
return error;
}
-lldb_private::Error NativeRegisterContextLinux_mips64::WriteRegister(
+lldb_private::Status NativeRegisterContextLinux_mips64::WriteRegister(
const RegisterInfo *reg_info, const RegisterValue &reg_value) {
- Error error;
+ Status error;
assert(reg_info && "reg_info is null");
const uint32_t reg_index = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg_index == LLDB_INVALID_REGNUM)
- return Error("no lldb regnum for %s", reg_info && reg_info->name
- ? reg_info->name
- : "<unknown register>");
+ return Status("no lldb regnum for %s", reg_info && reg_info->name
+ ? reg_info->name
+ : "<unknown register>");
if (IsMSA(reg_index) && !IsMSAAvailable()) {
error.SetErrorString("MSA not available on this processor");
@@ -383,9 +383,9 @@ lldb_private::Error NativeRegisterContextLinux_mips64::WriteRegister(
return error;
}
-Error NativeRegisterContextLinux_mips64::ReadAllRegisterValues(
+Status NativeRegisterContextLinux_mips64::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp) {
@@ -426,9 +426,9 @@ Error NativeRegisterContextLinux_mips64::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_mips64::WriteAllRegisterValues(
+Status NativeRegisterContextLinux_mips64::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -481,8 +481,8 @@ Error NativeRegisterContextLinux_mips64::WriteAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_mips64::ReadCP1() {
- Error error;
+Status NativeRegisterContextLinux_mips64::ReadCP1() {
+ Status error;
uint8_t *src = nullptr;
uint8_t *dst = nullptr;
@@ -529,8 +529,8 @@ NativeRegisterContextLinux_mips64::ReturnFPOffset(uint8_t reg_index,
return fp_buffer_ptr;
}
-Error NativeRegisterContextLinux_mips64::WriteCP1() {
- Error error;
+Status NativeRegisterContextLinux_mips64::WriteCP1() {
+ Status error;
uint8_t *src = nullptr;
uint8_t *dst = nullptr;
@@ -740,7 +740,7 @@ bool NativeRegisterContextLinux_mips64::IsMSAAvailable() {
MSA_linux_mips msa_buf;
unsigned int regset = NT_MIPS_MSA;
- Error error = NativeProcessLinux::PtraceWrapper(
+ Status error = NativeProcessLinux::PtraceWrapper(
PTRACE_GETREGSET, Host::GetCurrentProcessID(),
static_cast<void *>(&regset), &msa_buf, sizeof(MSA_linux_mips));
@@ -751,14 +751,14 @@ bool NativeRegisterContextLinux_mips64::IsMSAAvailable() {
return false;
}
-Error NativeRegisterContextLinux_mips64::IsWatchpointHit(uint32_t wp_index,
- bool &is_hit) {
+Status NativeRegisterContextLinux_mips64::IsWatchpointHit(uint32_t wp_index,
+ bool &is_hit) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
// reading the current state of watch regs
struct pt_watch_regs watch_readback;
- Error error = DoReadWatchPointRegisterValue(
+ Status error = DoReadWatchPointRegisterValue(
m_thread.GetID(), static_cast<void *>(&watch_readback));
if (GetWatchHi(&watch_readback, wp_index) & (IRW)) {
@@ -775,12 +775,12 @@ Error NativeRegisterContextLinux_mips64::IsWatchpointHit(uint32_t wp_index,
return error;
}
-Error NativeRegisterContextLinux_mips64::GetWatchpointHitIndex(
+Status NativeRegisterContextLinux_mips64::GetWatchpointHitIndex(
uint32_t &wp_index, lldb::addr_t trap_addr) {
uint32_t num_hw_wps = NumSupportedHardwareWatchpoints();
for (wp_index = 0; wp_index < num_hw_wps; ++wp_index) {
bool is_hit;
- Error error = IsWatchpointHit(wp_index, is_hit);
+ Status error = IsWatchpointHit(wp_index, is_hit);
if (error.Fail()) {
wp_index = LLDB_INVALID_INDEX32;
} else if (is_hit) {
@@ -788,15 +788,15 @@ Error NativeRegisterContextLinux_mips64::GetWatchpointHitIndex(
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_mips64::IsWatchpointVacant(uint32_t wp_index,
- bool &is_vacant) {
+Status NativeRegisterContextLinux_mips64::IsWatchpointVacant(uint32_t wp_index,
+ bool &is_vacant) {
is_vacant = false;
- return Error("MIPS TODO: "
- "NativeRegisterContextLinux_mips64::IsWatchpointVacant not "
- "implemented");
+ return Status("MIPS TODO: "
+ "NativeRegisterContextLinux_mips64::IsWatchpointVacant not "
+ "implemented");
}
bool NativeRegisterContextLinux_mips64::ClearHardwareWatchpoint(
@@ -821,8 +821,8 @@ bool NativeRegisterContextLinux_mips64::ClearHardwareWatchpoint(
default_watch_regs.mips64.watch_masks[wp_index];
}
- Error error = DoWriteWatchPointRegisterValue(m_thread.GetID(),
- static_cast<void *>(&regs));
+ Status error = DoWriteWatchPointRegisterValue(m_thread.GetID(),
+ static_cast<void *>(&regs));
if (!error.Fail()) {
hw_addr_map[wp_index] = LLDB_INVALID_ADDRESS;
return true;
@@ -830,14 +830,14 @@ bool NativeRegisterContextLinux_mips64::ClearHardwareWatchpoint(
return false;
}
-Error NativeRegisterContextLinux_mips64::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextLinux_mips64::ClearAllHardwareWatchpoints() {
return DoWriteWatchPointRegisterValue(
m_thread.GetID(), static_cast<void *>(&default_watch_regs));
}
-Error NativeRegisterContextLinux_mips64::SetHardwareWatchpointWithIndex(
+Status NativeRegisterContextLinux_mips64::SetHardwareWatchpointWithIndex(
lldb::addr_t addr, size_t size, uint32_t watch_flags, uint32_t wp_index) {
- Error error;
+ Status error;
error.SetErrorString("MIPS TODO: "
"NativeRegisterContextLinux_mips64::"
"SetHardwareWatchpointWithIndex not implemented");
@@ -910,7 +910,7 @@ static bool ReadRegisterCallback(EmulateInstruction *instruction, void *baton,
emulator_baton->m_reg_context->GetRegisterInfo(
lldb::eRegisterKindDWARF, reg_info->kinds[lldb::eRegisterKindDWARF]);
- Error error =
+ Status error =
emulator_baton->m_reg_context->ReadRegister(full_reg_info, reg_value);
if (error.Success())
return true;
@@ -991,12 +991,13 @@ uint32_t NativeRegisterContextLinux_mips64::NumSupportedHardwareWatchpoints() {
return num_valid;
}
-Error NativeRegisterContextLinux_mips64::ReadRegisterRaw(uint32_t reg_index,
- RegisterValue &value) {
+Status
+NativeRegisterContextLinux_mips64::ReadRegisterRaw(uint32_t reg_index,
+ RegisterValue &value) {
const RegisterInfo *const reg_info = GetRegisterInfoAtIndex(reg_index);
if (!reg_info)
- return Error("register %" PRIu32 " not found", reg_index);
+ return Status("register %" PRIu32 " not found", reg_index);
uint32_t offset = reg_info->kinds[lldb::eRegisterKindProcessPlugin];
@@ -1008,12 +1009,12 @@ Error NativeRegisterContextLinux_mips64::ReadRegisterRaw(uint32_t reg_index,
value);
}
-Error NativeRegisterContextLinux_mips64::WriteRegisterRaw(
+Status NativeRegisterContextLinux_mips64::WriteRegisterRaw(
uint32_t reg_index, const RegisterValue &value) {
const RegisterInfo *const reg_info = GetRegisterInfoAtIndex(reg_index);
if (!reg_info)
- return Error("register %" PRIu32 " not found", reg_index);
+ return Status("register %" PRIu32 " not found", reg_index);
if (reg_info->invalidate_regs)
lldbassert(false && "reg_info->invalidate_regs is unhandled");
@@ -1022,14 +1023,14 @@ Error NativeRegisterContextLinux_mips64::WriteRegisterRaw(
return DoWriteRegisterValue(offset, reg_info->name, value);
}
-Error NativeRegisterContextLinux_mips64::Read_SR_Config(uint32_t offset,
- const char *reg_name,
- uint32_t size,
- RegisterValue &value) {
+Status NativeRegisterContextLinux_mips64::Read_SR_Config(uint32_t offset,
+ const char *reg_name,
+ uint32_t size,
+ RegisterValue &value) {
GPR_linux_mips regs;
::memset(&regs, 0, sizeof(GPR_linux_mips));
- Error error = NativeProcessLinux::PtraceWrapper(
+ Status error = NativeProcessLinux::PtraceWrapper(
PTRACE_GETREGS, m_thread.GetID(), NULL, &regs, sizeof regs);
if (error.Success()) {
lldb_private::ArchSpec arch;
@@ -1043,13 +1044,13 @@ Error NativeRegisterContextLinux_mips64::Read_SR_Config(uint32_t offset,
return error;
}
-Error NativeRegisterContextLinux_mips64::DoReadWatchPointRegisterValue(
+Status NativeRegisterContextLinux_mips64::DoReadWatchPointRegisterValue(
lldb::tid_t tid, void *watch_readback) {
return NativeProcessLinux::PtraceWrapper(PTRACE_GET_WATCH_REGS,
m_thread.GetID(), watch_readback);
}
-Error NativeRegisterContextLinux_mips64::DoWriteWatchPointRegisterValue(
+Status NativeRegisterContextLinux_mips64::DoWriteWatchPointRegisterValue(
lldb::tid_t tid, void *watch_reg_value) {
return NativeProcessLinux::PtraceWrapper(PTRACE_SET_WATCH_REGS,
m_thread.GetID(), watch_reg_value);
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.h
index 1b25609205df..3e14da5a2725 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.h
@@ -38,35 +38,36 @@ public:
const RegisterSet *GetRegisterSet(uint32_t set_index) const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
- Error ReadCP1();
+ Status ReadCP1();
- Error WriteCP1();
+ Status WriteCP1();
uint8_t *ReturnFPOffset(uint8_t reg_index, uint32_t byte_offset);
- Error IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
+ Status IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
- Error IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
+ Status IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
bool ClearHardwareWatchpoint(uint32_t wp_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
- Error SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, uint32_t wp_index);
+ Status SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags,
+ uint32_t wp_index);
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size,
uint32_t watch_flags) override;
@@ -78,17 +79,17 @@ public:
static bool IsMSAAvailable();
protected:
- Error Read_SR_Config(uint32_t offset, const char *reg_name, uint32_t size,
- RegisterValue &value);
+ Status Read_SR_Config(uint32_t offset, const char *reg_name, uint32_t size,
+ RegisterValue &value);
- Error ReadRegisterRaw(uint32_t reg_index, RegisterValue &value) override;
+ Status ReadRegisterRaw(uint32_t reg_index, RegisterValue &value) override;
- Error WriteRegisterRaw(uint32_t reg_index,
- const RegisterValue &value) override;
+ Status WriteRegisterRaw(uint32_t reg_index,
+ const RegisterValue &value) override;
- Error DoReadWatchPointRegisterValue(lldb::tid_t tid, void *watch_readback);
+ Status DoReadWatchPointRegisterValue(lldb::tid_t tid, void *watch_readback);
- Error DoWriteWatchPointRegisterValue(lldb::tid_t tid, void *watch_readback);
+ Status DoWriteWatchPointRegisterValue(lldb::tid_t tid, void *watch_readback);
bool IsFR0();
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp
index 3e782d39f72e..c2a696e08bf9 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp
@@ -14,8 +14,8 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Utility/RegisterContextLinux_s390x.h"
@@ -192,20 +192,21 @@ bool NativeRegisterContextLinux_s390x::IsFPR(uint32_t reg_index) const {
reg_index <= m_reg_info.last_fpr);
}
-Error NativeRegisterContextLinux_s390x::ReadRegister(
- const RegisterInfo *reg_info, RegisterValue &reg_value) {
+Status
+NativeRegisterContextLinux_s390x::ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) {
if (!reg_info)
- return Error("reg_info NULL");
+ return Status("reg_info NULL");
const uint32_t reg = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg == LLDB_INVALID_REGNUM)
- return Error("register \"%s\" is an internal-only lldb register, cannot "
- "read directly",
- reg_info->name);
+ return Status("register \"%s\" is an internal-only lldb register, cannot "
+ "read directly",
+ reg_info->name);
if (IsGPR(reg)) {
s390_regs regs;
- Error error = DoReadGPR(&regs, sizeof(regs));
+ Status error = DoReadGPR(&regs, sizeof(regs));
if (error.Fail())
return error;
@@ -220,14 +221,14 @@ Error NativeRegisterContextLinux_s390x::ReadRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
+ return Status("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
- return Error();
+ return Status();
}
if (IsFPR(reg)) {
s390_fp_regs fp_regs;
- Error error = DoReadFPR(&fp_regs, sizeof(fp_regs));
+ Status error = DoReadFPR(&fp_regs, sizeof(fp_regs));
if (error.Fail())
return error;
@@ -243,48 +244,48 @@ Error NativeRegisterContextLinux_s390x::ReadRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
+ return Status("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
- return Error();
+ return Status();
}
if (reg == lldb_last_break_s390x) {
uint64_t last_break;
- Error error = DoReadRegisterSet(NT_S390_LAST_BREAK, &last_break, 8);
+ Status error = DoReadRegisterSet(NT_S390_LAST_BREAK, &last_break, 8);
if (error.Fail())
return error;
reg_value.SetUInt64(last_break);
- return Error();
+ return Status();
}
if (reg == lldb_system_call_s390x) {
uint32_t system_call;
- Error error = DoReadRegisterSet(NT_S390_SYSTEM_CALL, &system_call, 4);
+ Status error = DoReadRegisterSet(NT_S390_SYSTEM_CALL, &system_call, 4);
if (error.Fail())
return error;
reg_value.SetUInt32(system_call);
- return Error();
+ return Status();
}
- return Error("failed - register wasn't recognized");
+ return Status("failed - register wasn't recognized");
}
-Error NativeRegisterContextLinux_s390x::WriteRegister(
+Status NativeRegisterContextLinux_s390x::WriteRegister(
const RegisterInfo *reg_info, const RegisterValue &reg_value) {
if (!reg_info)
- return Error("reg_info NULL");
+ return Status("reg_info NULL");
const uint32_t reg = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg == LLDB_INVALID_REGNUM)
- return Error("register \"%s\" is an internal-only lldb register, cannot "
- "write directly",
- reg_info->name);
+ return Status("register \"%s\" is an internal-only lldb register, cannot "
+ "write directly",
+ reg_info->name);
if (IsGPR(reg)) {
s390_regs regs;
- Error error = DoReadGPR(&regs, sizeof(regs));
+ Status error = DoReadGPR(&regs, sizeof(regs));
if (error.Fail())
return error;
@@ -299,14 +300,14 @@ Error NativeRegisterContextLinux_s390x::WriteRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
+ return Status("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
return DoWriteGPR(&regs, sizeof(regs));
}
if (IsFPR(reg)) {
s390_fp_regs fp_regs;
- Error error = DoReadFPR(&fp_regs, sizeof(fp_regs));
+ Status error = DoReadFPR(&fp_regs, sizeof(fp_regs));
if (error.Fail())
return error;
@@ -322,13 +323,13 @@ Error NativeRegisterContextLinux_s390x::WriteRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
+ return Status("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
return DoWriteFPR(&fp_regs, sizeof(fp_regs));
}
if (reg == lldb_last_break_s390x) {
- return Error("The last break address is read-only");
+ return Status("The last break address is read-only");
}
if (reg == lldb_system_call_s390x) {
@@ -336,12 +337,12 @@ Error NativeRegisterContextLinux_s390x::WriteRegister(
return DoWriteRegisterSet(NT_S390_SYSTEM_CALL, &system_call, 4);
}
- return Error("failed - register wasn't recognized");
+ return Status("failed - register wasn't recognized");
}
-Error NativeRegisterContextLinux_s390x::ReadAllRegisterValues(
+Status NativeRegisterContextLinux_s390x::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp) {
@@ -383,9 +384,9 @@ Error NativeRegisterContextLinux_s390x::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_s390x::WriteAllRegisterValues(
+Status NativeRegisterContextLinux_s390x::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -428,19 +429,20 @@ Error NativeRegisterContextLinux_s390x::WriteAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_s390x::DoReadRegisterValue(
+Status NativeRegisterContextLinux_s390x::DoReadRegisterValue(
uint32_t offset, const char *reg_name, uint32_t size,
RegisterValue &value) {
- return Error("DoReadRegisterValue unsupported");
+ return Status("DoReadRegisterValue unsupported");
}
-Error NativeRegisterContextLinux_s390x::DoWriteRegisterValue(
+Status NativeRegisterContextLinux_s390x::DoWriteRegisterValue(
uint32_t offset, const char *reg_name, const RegisterValue &value) {
- return Error("DoWriteRegisterValue unsupported");
+ return Status("DoWriteRegisterValue unsupported");
}
-Error NativeRegisterContextLinux_s390x::PeekUserArea(uint32_t offset, void *buf,
- size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::PeekUserArea(uint32_t offset,
+ void *buf,
+ size_t buf_size) {
ptrace_area parea;
parea.len = buf_size;
parea.process_addr = (addr_t)buf;
@@ -450,9 +452,9 @@ Error NativeRegisterContextLinux_s390x::PeekUserArea(uint32_t offset, void *buf,
m_thread.GetID(), &parea);
}
-Error NativeRegisterContextLinux_s390x::PokeUserArea(uint32_t offset,
- const void *buf,
- size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::PokeUserArea(uint32_t offset,
+ const void *buf,
+ size_t buf_size) {
ptrace_area parea;
parea.len = buf_size;
parea.process_addr = (addr_t)buf;
@@ -462,29 +464,31 @@ Error NativeRegisterContextLinux_s390x::PokeUserArea(uint32_t offset,
m_thread.GetID(), &parea);
}
-Error NativeRegisterContextLinux_s390x::DoReadGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoReadGPR(void *buf, size_t buf_size) {
assert(buf_size == sizeof(s390_regs));
return PeekUserArea(offsetof(user_regs_struct, psw), buf, buf_size);
}
-Error NativeRegisterContextLinux_s390x::DoWriteGPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoWriteGPR(void *buf,
+ size_t buf_size) {
assert(buf_size == sizeof(s390_regs));
return PokeUserArea(offsetof(user_regs_struct, psw), buf, buf_size);
}
-Error NativeRegisterContextLinux_s390x::DoReadFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoReadFPR(void *buf, size_t buf_size) {
assert(buf_size == sizeof(s390_fp_regs));
return PeekUserArea(offsetof(user_regs_struct, fp_regs), buf, buf_size);
}
-Error NativeRegisterContextLinux_s390x::DoWriteFPR(void *buf, size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoWriteFPR(void *buf,
+ size_t buf_size) {
assert(buf_size == sizeof(s390_fp_regs));
return PokeUserArea(offsetof(user_regs_struct, fp_regs), buf, buf_size);
}
-Error NativeRegisterContextLinux_s390x::DoReadRegisterSet(uint32_t regset,
- void *buf,
- size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoReadRegisterSet(uint32_t regset,
+ void *buf,
+ size_t buf_size) {
struct iovec iov;
iov.iov_base = buf;
iov.iov_len = buf_size;
@@ -492,9 +496,9 @@ Error NativeRegisterContextLinux_s390x::DoReadRegisterSet(uint32_t regset,
return ReadRegisterSet(&iov, buf_size, regset);
}
-Error NativeRegisterContextLinux_s390x::DoWriteRegisterSet(uint32_t regset,
- const void *buf,
- size_t buf_size) {
+Status NativeRegisterContextLinux_s390x::DoWriteRegisterSet(uint32_t regset,
+ const void *buf,
+ size_t buf_size) {
struct iovec iov;
iov.iov_base = const_cast<void *>(buf);
iov.iov_len = buf_size;
@@ -502,20 +506,20 @@ Error NativeRegisterContextLinux_s390x::DoWriteRegisterSet(uint32_t regset,
return WriteRegisterSet(&iov, buf_size, regset);
}
-Error NativeRegisterContextLinux_s390x::IsWatchpointHit(uint32_t wp_index,
- bool &is_hit) {
+Status NativeRegisterContextLinux_s390x::IsWatchpointHit(uint32_t wp_index,
+ bool &is_hit) {
per_lowcore_bits per_lowcore;
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
if (m_watchpoint_addr == LLDB_INVALID_ADDRESS) {
is_hit = false;
- return Error();
+ return Status();
}
- Error error = PeekUserArea(offsetof(user_regs_struct, per_info.lowcore),
- &per_lowcore, sizeof(per_lowcore));
+ Status error = PeekUserArea(offsetof(user_regs_struct, per_info.lowcore),
+ &per_lowcore, sizeof(per_lowcore));
if (error.Fail()) {
is_hit = false;
return error;
@@ -531,15 +535,15 @@ Error NativeRegisterContextLinux_s390x::IsWatchpointHit(uint32_t wp_index,
sizeof(per_lowcore));
}
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_s390x::GetWatchpointHitIndex(
+Status NativeRegisterContextLinux_s390x::GetWatchpointHitIndex(
uint32_t &wp_index, lldb::addr_t trap_addr) {
uint32_t num_hw_wps = NumSupportedHardwareWatchpoints();
for (wp_index = 0; wp_index < num_hw_wps; ++wp_index) {
bool is_hit;
- Error error = IsWatchpointHit(wp_index, is_hit);
+ Status error = IsWatchpointHit(wp_index, is_hit);
if (error.Fail()) {
wp_index = LLDB_INVALID_INDEX32;
return error;
@@ -548,17 +552,17 @@ Error NativeRegisterContextLinux_s390x::GetWatchpointHitIndex(
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_s390x::IsWatchpointVacant(uint32_t wp_index,
- bool &is_vacant) {
+Status NativeRegisterContextLinux_s390x::IsWatchpointVacant(uint32_t wp_index,
+ bool &is_vacant) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
is_vacant = m_watchpoint_addr == LLDB_INVALID_ADDRESS;
- return Error();
+ return Status();
}
bool NativeRegisterContextLinux_s390x::ClearHardwareWatchpoint(
@@ -568,8 +572,8 @@ bool NativeRegisterContextLinux_s390x::ClearHardwareWatchpoint(
if (wp_index >= NumSupportedHardwareWatchpoints())
return false;
- Error error = PeekUserArea(offsetof(user_regs_struct, per_info), &per_info,
- sizeof(per_info));
+ Status error = PeekUserArea(offsetof(user_regs_struct, per_info), &per_info,
+ sizeof(per_info));
if (error.Fail())
return false;
@@ -587,10 +591,10 @@ bool NativeRegisterContextLinux_s390x::ClearHardwareWatchpoint(
return true;
}
-Error NativeRegisterContextLinux_s390x::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextLinux_s390x::ClearAllHardwareWatchpoints() {
if (ClearHardwareWatchpoint(0))
- return Error();
- return Error("Clearing all hardware watchpoints failed.");
+ return Status();
+ return Status("Clearing all hardware watchpoints failed.");
}
uint32_t NativeRegisterContextLinux_s390x::SetHardwareWatchpoint(
@@ -603,8 +607,8 @@ uint32_t NativeRegisterContextLinux_s390x::SetHardwareWatchpoint(
if (m_watchpoint_addr != LLDB_INVALID_ADDRESS)
return LLDB_INVALID_INDEX32;
- Error error = PeekUserArea(offsetof(user_regs_struct, per_info), &per_info,
- sizeof(per_info));
+ Status error = PeekUserArea(offsetof(user_regs_struct, per_info), &per_info,
+ sizeof(per_info));
if (error.Fail())
return LLDB_INVALID_INDEX32;
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h
index 4bd737767fa4..3ffbaeeb0bba 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h
@@ -33,26 +33,26 @@ public:
uint32_t GetUserRegisterCount() const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
- Error IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
+ Status IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
- Error IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
+ Status IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
bool ClearHardwareWatchpoint(uint32_t wp_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size,
uint32_t watch_flags) override;
@@ -62,19 +62,19 @@ public:
uint32_t NumSupportedHardwareWatchpoints() override;
protected:
- Error DoReadRegisterValue(uint32_t offset, const char *reg_name,
- uint32_t size, RegisterValue &value) override;
+ Status DoReadRegisterValue(uint32_t offset, const char *reg_name,
+ uint32_t size, RegisterValue &value) override;
- Error DoWriteRegisterValue(uint32_t offset, const char *reg_name,
- const RegisterValue &value) override;
+ Status DoWriteRegisterValue(uint32_t offset, const char *reg_name,
+ const RegisterValue &value) override;
- Error DoReadGPR(void *buf, size_t buf_size) override;
+ Status DoReadGPR(void *buf, size_t buf_size) override;
- Error DoWriteGPR(void *buf, size_t buf_size) override;
+ Status DoWriteGPR(void *buf, size_t buf_size) override;
- Error DoReadFPR(void *buf, size_t buf_size) override;
+ Status DoReadFPR(void *buf, size_t buf_size) override;
- Error DoWriteFPR(void *buf, size_t buf_size) override;
+ Status DoWriteFPR(void *buf, size_t buf_size) override;
private:
// Info about register ranges.
@@ -99,13 +99,13 @@ private:
bool IsFPR(uint32_t reg_index) const;
- Error PeekUserArea(uint32_t offset, void *buf, size_t buf_size);
+ Status PeekUserArea(uint32_t offset, void *buf, size_t buf_size);
- Error PokeUserArea(uint32_t offset, const void *buf, size_t buf_size);
+ Status PokeUserArea(uint32_t offset, const void *buf, size_t buf_size);
- Error DoReadRegisterSet(uint32_t regset, void *buf, size_t buf_size);
+ Status DoReadRegisterSet(uint32_t regset, void *buf, size_t buf_size);
- Error DoWriteRegisterSet(uint32_t regset, const void *buf, size_t buf_size);
+ Status DoWriteRegisterSet(uint32_t regset, const void *buf, size_t buf_size);
};
} // namespace process_linux
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp b/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
index dd35705a8ae8..59dc9e9f7d45 100755
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
@@ -14,8 +14,8 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Utility/RegisterContextLinux_i386.h"
#include "Plugins/Process/Utility/RegisterContextLinux_x86_64.h"
@@ -385,9 +385,10 @@ NativeRegisterContextLinux_x86_64::GetRegisterSet(uint32_t set_index) const {
return nullptr;
}
-Error NativeRegisterContextLinux_x86_64::ReadRegister(
- const RegisterInfo *reg_info, RegisterValue &reg_value) {
- Error error;
+Status
+NativeRegisterContextLinux_x86_64::ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) {
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -529,15 +530,15 @@ Error NativeRegisterContextLinux_x86_64::ReadRegister(
return error;
}
-Error NativeRegisterContextLinux_x86_64::WriteRegister(
+Status NativeRegisterContextLinux_x86_64::WriteRegister(
const RegisterInfo *reg_info, const RegisterValue &reg_value) {
assert(reg_info && "reg_info is null");
const uint32_t reg_index = reg_info->kinds[lldb::eRegisterKindLLDB];
if (reg_index == LLDB_INVALID_REGNUM)
- return Error("no lldb regnum for %s", reg_info && reg_info->name
- ? reg_info->name
- : "<unknown register>");
+ return Status("no lldb regnum for %s", reg_info && reg_info->name
+ ? reg_info->name
+ : "<unknown register>");
if (IsGPR(reg_index))
return WriteRegisterRaw(reg_index, reg_value);
@@ -566,7 +567,7 @@ Error NativeRegisterContextLinux_x86_64::WriteRegister(
::memcpy(m_ymm_set.ymm[reg_index - m_reg_info.first_ymm].bytes,
reg_value.GetBytes(), reg_value.GetByteSize());
if (!CopyYMMtoXSTATE(reg_index, GetByteOrder()))
- return Error("CopyYMMtoXSTATE() failed");
+ return Status("CopyYMMtoXSTATE() failed");
}
if (reg_index >= m_reg_info.first_mpxr &&
@@ -574,7 +575,7 @@ Error NativeRegisterContextLinux_x86_64::WriteRegister(
::memcpy(m_mpx_set.mpxr[reg_index - m_reg_info.first_mpxr].bytes,
reg_value.GetBytes(), reg_value.GetByteSize());
if (!CopyMPXtoXSTATE(reg_index))
- return Error("CopyMPXtoXSTATE() failed");
+ return Status("CopyMPXtoXSTATE() failed");
}
if (reg_index >= m_reg_info.first_mpxc &&
@@ -582,7 +583,7 @@ Error NativeRegisterContextLinux_x86_64::WriteRegister(
::memcpy(m_mpx_set.mpxc[reg_index - m_reg_info.first_mpxc].bytes,
reg_value.GetBytes(), reg_value.GetByteSize());
if (!CopyMPXtoXSTATE(reg_index))
- return Error("CopyMPXtoXSTATE() failed");
+ return Status("CopyMPXtoXSTATE() failed");
}
} else {
// Get pointer to m_fpr.xstate.fxsave variable and set the data to it.
@@ -616,33 +617,33 @@ Error NativeRegisterContextLinux_x86_64::WriteRegister(
break;
default:
assert(false && "Unhandled data size.");
- return Error("unhandled register data size %" PRIu32,
- reg_info->byte_size);
+ return Status("unhandled register data size %" PRIu32,
+ reg_info->byte_size);
}
}
- Error error = WriteFPR();
+ Status error = WriteFPR();
if (error.Fail())
return error;
if (IsAVX(reg_index)) {
if (!CopyYMMtoXSTATE(reg_index, GetByteOrder()))
- return Error("CopyYMMtoXSTATE() failed");
+ return Status("CopyYMMtoXSTATE() failed");
}
if (IsMPX(reg_index)) {
if (!CopyMPXtoXSTATE(reg_index))
- return Error("CopyMPXtoXSTATE() failed");
+ return Status("CopyMPXtoXSTATE() failed");
}
- return Error();
+ return Status();
}
- return Error("failed - register wasn't recognized to be a GPR or an FPR, "
- "write strategy unknown");
+ return Status("failed - register wasn't recognized to be a GPR or an FPR, "
+ "write strategy unknown");
}
-Error NativeRegisterContextLinux_x86_64::ReadAllRegisterValues(
+Status NativeRegisterContextLinux_x86_64::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp) {
@@ -728,9 +729,9 @@ Error NativeRegisterContextLinux_x86_64::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextLinux_x86_64::WriteAllRegisterValues(
+Status NativeRegisterContextLinux_x86_64::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -857,7 +858,7 @@ bool NativeRegisterContextLinux_x86_64::IsFPR(uint32_t reg_index) const {
reg_index <= m_reg_info.last_fpr);
}
-Error NativeRegisterContextLinux_x86_64::WriteFPR() {
+Status NativeRegisterContextLinux_x86_64::WriteFPR() {
switch (m_xstate_type) {
case XStateType::FXSAVE:
return WriteRegisterSet(
@@ -867,7 +868,7 @@ Error NativeRegisterContextLinux_x86_64::WriteFPR() {
return WriteRegisterSet(&m_iovec, sizeof(m_fpr.xstate.xsave),
NT_X86_XSTATE);
default:
- return Error("Unrecognized FPR type.");
+ return Status("Unrecognized FPR type.");
}
}
@@ -954,8 +955,8 @@ size_t NativeRegisterContextLinux_x86_64::GetFPRSize() {
}
}
-Error NativeRegisterContextLinux_x86_64::ReadFPR() {
- Error error;
+Status NativeRegisterContextLinux_x86_64::ReadFPR() {
+ Status error;
// Probe XSAVE and if it is not supported fall back to FXSAVE.
if (m_xstate_type != XStateType::FXSAVE) {
@@ -973,7 +974,7 @@ Error NativeRegisterContextLinux_x86_64::ReadFPR() {
m_xstate_type = XStateType::FXSAVE;
return error;
}
- return Error("Unrecognized FPR type.");
+ return Status("Unrecognized FPR type.");
}
bool NativeRegisterContextLinux_x86_64::IsMPX(uint32_t reg_index) const {
@@ -1013,13 +1014,13 @@ bool NativeRegisterContextLinux_x86_64::CopyMPXtoXSTATE(uint32_t reg) {
return true;
}
-Error NativeRegisterContextLinux_x86_64::IsWatchpointHit(uint32_t wp_index,
- bool &is_hit) {
+Status NativeRegisterContextLinux_x86_64::IsWatchpointHit(uint32_t wp_index,
+ bool &is_hit) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
RegisterValue reg_value;
- Error error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
+ Status error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
if (error.Fail()) {
is_hit = false;
return error;
@@ -1032,12 +1033,12 @@ Error NativeRegisterContextLinux_x86_64::IsWatchpointHit(uint32_t wp_index,
return error;
}
-Error NativeRegisterContextLinux_x86_64::GetWatchpointHitIndex(
+Status NativeRegisterContextLinux_x86_64::GetWatchpointHitIndex(
uint32_t &wp_index, lldb::addr_t trap_addr) {
uint32_t num_hw_wps = NumSupportedHardwareWatchpoints();
for (wp_index = 0; wp_index < num_hw_wps; ++wp_index) {
bool is_hit;
- Error error = IsWatchpointHit(wp_index, is_hit);
+ Status error = IsWatchpointHit(wp_index, is_hit);
if (error.Fail()) {
wp_index = LLDB_INVALID_INDEX32;
return error;
@@ -1046,16 +1047,16 @@ Error NativeRegisterContextLinux_x86_64::GetWatchpointHitIndex(
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextLinux_x86_64::IsWatchpointVacant(uint32_t wp_index,
- bool &is_vacant) {
+Status NativeRegisterContextLinux_x86_64::IsWatchpointVacant(uint32_t wp_index,
+ bool &is_vacant) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
RegisterValue reg_value;
- Error error = ReadRegisterRaw(m_reg_info.first_dr + 7, reg_value);
+ Status error = ReadRegisterRaw(m_reg_info.first_dr + 7, reg_value);
if (error.Fail()) {
is_vacant = false;
return error;
@@ -1068,11 +1069,11 @@ Error NativeRegisterContextLinux_x86_64::IsWatchpointVacant(uint32_t wp_index,
return error;
}
-Error NativeRegisterContextLinux_x86_64::SetHardwareWatchpointWithIndex(
+Status NativeRegisterContextLinux_x86_64::SetHardwareWatchpointWithIndex(
lldb::addr_t addr, size_t size, uint32_t watch_flags, uint32_t wp_index) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
// Read only watchpoints aren't supported on x86_64. Fall back to read/write
// waitchpoints instead.
@@ -1082,17 +1083,17 @@ Error NativeRegisterContextLinux_x86_64::SetHardwareWatchpointWithIndex(
watch_flags = 0x3;
if (watch_flags != 0x1 && watch_flags != 0x3)
- return Error("Invalid read/write bits for watchpoint");
+ return Status("Invalid read/write bits for watchpoint");
if (size != 1 && size != 2 && size != 4 && size != 8)
- return Error("Invalid size for watchpoint");
+ return Status("Invalid size for watchpoint");
bool is_vacant;
- Error error = IsWatchpointVacant(wp_index, is_vacant);
+ Status error = IsWatchpointVacant(wp_index, is_vacant);
if (error.Fail())
return error;
if (!is_vacant)
- return Error("Watchpoint index not vacant");
+ return Status("Watchpoint index not vacant");
RegisterValue reg_value;
error = ReadRegisterRaw(m_reg_info.first_dr + 7, reg_value);
@@ -1140,7 +1141,7 @@ bool NativeRegisterContextLinux_x86_64::ClearHardwareWatchpoint(
// for watchpoints 0, 1, 2, or 3, respectively,
// clear bits 0, 1, 2, or 3 of the debug status register (DR6)
- Error error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
+ Status error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
if (error.Fail())
return false;
uint64_t bit_mask = 1 << wp_index;
@@ -1161,11 +1162,11 @@ bool NativeRegisterContextLinux_x86_64::ClearHardwareWatchpoint(
.Success();
}
-Error NativeRegisterContextLinux_x86_64::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextLinux_x86_64::ClearAllHardwareWatchpoints() {
RegisterValue reg_value;
// clear bits {0-4} of the debug status register (DR6)
- Error error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
+ Status error = ReadRegisterRaw(m_reg_info.first_dr + 6, reg_value);
if (error.Fail())
return error;
uint64_t bit_mask = 0xF;
@@ -1189,7 +1190,7 @@ uint32_t NativeRegisterContextLinux_x86_64::SetHardwareWatchpoint(
const uint32_t num_hw_watchpoints = NumSupportedHardwareWatchpoints();
for (uint32_t wp_index = 0; wp_index < num_hw_watchpoints; ++wp_index) {
bool is_vacant;
- Error error = IsWatchpointVacant(wp_index, is_vacant);
+ Status error = IsWatchpointVacant(wp_index, is_vacant);
if (is_vacant) {
error = SetHardwareWatchpointWithIndex(addr, size, watch_flags, wp_index);
if (error.Success())
diff --git a/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h b/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h
index cc05ec06b297..abb0dba4d91c 100644
--- a/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h
+++ b/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h
@@ -33,29 +33,30 @@ public:
uint32_t GetUserRegisterCount() const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
- Error IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
+ Status IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
- Error IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
+ Status IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
bool ClearHardwareWatchpoint(uint32_t wp_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
- Error SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, uint32_t wp_index);
+ Status SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags,
+ uint32_t wp_index);
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size,
uint32_t watch_flags) override;
@@ -71,9 +72,9 @@ protected:
size_t GetFPRSize() override;
- Error ReadFPR() override;
+ Status ReadFPR() override;
- Error WriteFPR() override;
+ Status WriteFPR() override;
private:
// Private member types.
diff --git a/source/Plugins/Process/Linux/NativeThreadLinux.cpp b/source/Plugins/Process/Linux/NativeThreadLinux.cpp
index 04b6fe6d71e9..b1d13668f327 100644
--- a/source/Plugins/Process/Linux/NativeThreadLinux.cpp
+++ b/source/Plugins/Process/Linux/NativeThreadLinux.cpp
@@ -160,39 +160,40 @@ NativeRegisterContextSP NativeThreadLinux::GetRegisterContext() {
return m_reg_context_sp;
}
-Error NativeThreadLinux::SetWatchpoint(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, bool hardware) {
+Status NativeThreadLinux::SetWatchpoint(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags, bool hardware) {
if (!hardware)
- return Error("not implemented");
+ return Status("not implemented");
if (m_state == eStateLaunching)
- return Error();
- Error error = RemoveWatchpoint(addr);
+ return Status();
+ Status error = RemoveWatchpoint(addr);
if (error.Fail())
return error;
NativeRegisterContextSP reg_ctx = GetRegisterContext();
uint32_t wp_index = reg_ctx->SetHardwareWatchpoint(addr, size, watch_flags);
if (wp_index == LLDB_INVALID_INDEX32)
- return Error("Setting hardware watchpoint failed.");
+ return Status("Setting hardware watchpoint failed.");
m_watchpoint_index_map.insert({addr, wp_index});
- return Error();
+ return Status();
}
-Error NativeThreadLinux::RemoveWatchpoint(lldb::addr_t addr) {
+Status NativeThreadLinux::RemoveWatchpoint(lldb::addr_t addr) {
auto wp = m_watchpoint_index_map.find(addr);
if (wp == m_watchpoint_index_map.end())
- return Error();
+ return Status();
uint32_t wp_index = wp->second;
m_watchpoint_index_map.erase(wp);
if (GetRegisterContext()->ClearHardwareWatchpoint(wp_index))
- return Error();
- return Error("Clearing hardware watchpoint failed.");
+ return Status();
+ return Status("Clearing hardware watchpoint failed.");
}
-Error NativeThreadLinux::SetHardwareBreakpoint(lldb::addr_t addr, size_t size) {
+Status NativeThreadLinux::SetHardwareBreakpoint(lldb::addr_t addr,
+ size_t size) {
if (m_state == eStateLaunching)
- return Error();
+ return Status();
- Error error = RemoveHardwareBreakpoint(addr);
+ Status error = RemoveHardwareBreakpoint(addr);
if (error.Fail())
return error;
@@ -200,27 +201,27 @@ Error NativeThreadLinux::SetHardwareBreakpoint(lldb::addr_t addr, size_t size) {
uint32_t bp_index = reg_ctx->SetHardwareBreakpoint(addr, size);
if (bp_index == LLDB_INVALID_INDEX32)
- return Error("Setting hardware breakpoint failed.");
+ return Status("Setting hardware breakpoint failed.");
m_hw_break_index_map.insert({addr, bp_index});
- return Error();
+ return Status();
}
-Error NativeThreadLinux::RemoveHardwareBreakpoint(lldb::addr_t addr) {
+Status NativeThreadLinux::RemoveHardwareBreakpoint(lldb::addr_t addr) {
auto bp = m_hw_break_index_map.find(addr);
if (bp == m_hw_break_index_map.end())
- return Error();
+ return Status();
uint32_t bp_index = bp->second;
if (GetRegisterContext()->ClearHardwareBreakpoint(bp_index)) {
m_hw_break_index_map.erase(bp);
- return Error();
+ return Status();
}
- return Error("Clearing hardware breakpoint failed.");
+ return Status("Clearing hardware breakpoint failed.");
}
-Error NativeThreadLinux::Resume(uint32_t signo) {
+Status NativeThreadLinux::Resume(uint32_t signo) {
const StateType new_state = StateType::eStateRunning;
MaybeLogStateChange(new_state);
m_state = new_state;
@@ -262,7 +263,7 @@ Error NativeThreadLinux::Resume(uint32_t signo) {
reinterpret_cast<void *>(data));
}
-Error NativeThreadLinux::SingleStep(uint32_t signo) {
+Status NativeThreadLinux::SingleStep(uint32_t signo) {
const StateType new_state = StateType::eStateStepping;
MaybeLogStateChange(new_state);
m_state = new_state;
@@ -422,7 +423,7 @@ void NativeThreadLinux::SetExited() {
m_stop_info.reason = StopReason::eStopReasonThreadExiting;
}
-Error NativeThreadLinux::RequestStop() {
+Status NativeThreadLinux::RequestStop() {
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_THREAD));
NativeProcessLinux &process = GetProcess();
@@ -435,7 +436,7 @@ Error NativeThreadLinux::RequestStop() {
", tid: %" PRIu64 ")",
__FUNCTION__, pid, tid);
- Error err;
+ Status err;
errno = 0;
if (::tgkill(pid, tid, SIGSTOP) != 0) {
err.SetErrorToErrno();
diff --git a/source/Plugins/Process/Linux/NativeThreadLinux.h b/source/Plugins/Process/Linux/NativeThreadLinux.h
index 42697497c0af..b9126b3752a0 100644
--- a/source/Plugins/Process/Linux/NativeThreadLinux.h
+++ b/source/Plugins/Process/Linux/NativeThreadLinux.h
@@ -41,14 +41,14 @@ public:
NativeRegisterContextSP GetRegisterContext() override;
- Error SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
- bool hardware) override;
+ Status SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
+ bool hardware) override;
- Error RemoveWatchpoint(lldb::addr_t addr) override;
+ Status RemoveWatchpoint(lldb::addr_t addr) override;
- Error SetHardwareBreakpoint(lldb::addr_t addr, size_t size) override;
+ Status SetHardwareBreakpoint(lldb::addr_t addr, size_t size) override;
- Error RemoveHardwareBreakpoint(lldb::addr_t addr) override;
+ Status RemoveHardwareBreakpoint(lldb::addr_t addr) override;
private:
// ---------------------------------------------------------------------
@@ -57,11 +57,11 @@ private:
/// Resumes the thread. If @p signo is anything but
/// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread.
- Error Resume(uint32_t signo);
+ Status Resume(uint32_t signo);
/// Single steps the thread. If @p signo is anything but
/// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread.
- Error SingleStep(uint32_t signo);
+ Status SingleStep(uint32_t signo);
void SetStoppedBySignal(uint32_t signo, const siginfo_t *info = nullptr);
@@ -86,7 +86,7 @@ private:
void SetExited();
- Error RequestStop();
+ Status RequestStop();
// ---------------------------------------------------------------------
// Private interface
diff --git a/source/Plugins/Process/Linux/SingleStepCheck.cpp b/source/Plugins/Process/Linux/SingleStepCheck.cpp
index 4e979bd45532..251cb4b2f10a 100644
--- a/source/Plugins/Process/Linux/SingleStepCheck.cpp
+++ b/source/Plugins/Process/Linux/SingleStepCheck.cpp
@@ -20,7 +20,7 @@
#include "Plugins/Process/POSIX/ProcessPOSIXLog.h"
#include "lldb/Host/linux/Ptrace.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
using namespace lldb;
using namespace lldb_private;
@@ -66,7 +66,7 @@ bool WorkaroundNeeded() {
Log *log = ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_THREAD);
::pid_t child_pid = fork();
if (child_pid == -1) {
- LLDB_LOG(log, "failed to fork(): {0}", Error(errno, eErrorTypePOSIX));
+ LLDB_LOG(log, "failed to fork(): {0}", Status(errno, eErrorTypePOSIX));
return false;
}
if (child_pid == 0)
@@ -77,7 +77,7 @@ bool WorkaroundNeeded() {
if (sched_getaffinity(child_pid, sizeof available_cpus, &available_cpus) ==
-1) {
LLDB_LOG(log, "failed to get available cpus: {0}",
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
return false;
}
@@ -85,7 +85,7 @@ bool WorkaroundNeeded() {
::pid_t wpid = waitpid(child_pid, &status, __WALL);
if (wpid != child_pid || !WIFSTOPPED(status)) {
LLDB_LOG(log, "waitpid() failed (status = {0:x}): {1}", status,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
return false;
}
@@ -99,12 +99,12 @@ bool WorkaroundNeeded() {
CPU_SET(cpu, &cpus);
if (sched_setaffinity(child_pid, sizeof cpus, &cpus) == -1) {
LLDB_LOG(log, "failed to switch to cpu {0}: {1}", cpu,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
continue;
}
int status;
- Error error =
+ Status error =
NativeProcessLinux::PtraceWrapper(PTRACE_SINGLESTEP, child_pid);
if (error.Fail()) {
LLDB_LOG(log, "single step failed: {0}", error);
@@ -114,7 +114,7 @@ bool WorkaroundNeeded() {
wpid = waitpid(child_pid, &status, __WALL);
if (wpid != child_pid || !WIFSTOPPED(status)) {
LLDB_LOG(log, "waitpid() failed (status = {0:x}): {1}", status,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
break;
}
if (WSTOPSIG(status) != SIGTRAP) {
@@ -152,7 +152,7 @@ std::unique_ptr<SingleStepWorkaround> SingleStepWorkaround::Get(::pid_t tid) {
if (sched_getaffinity(tid, sizeof original_set, &original_set) != 0) {
// This should really not fail. But, just in case...
LLDB_LOG(log, "Unable to get cpu affinity for thread {0}: {1}", tid,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
return nullptr;
}
@@ -164,7 +164,7 @@ std::unique_ptr<SingleStepWorkaround> SingleStepWorkaround::Get(::pid_t tid) {
// to run on cpu 0. If that happens, only thing we can do is it log it and
// continue...
LLDB_LOG(log, "Unable to set cpu affinity for thread {0}: {1}", tid,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
}
LLDB_LOG(log, "workaround for thread {0} prepared", tid);
@@ -176,7 +176,7 @@ SingleStepWorkaround::~SingleStepWorkaround() {
LLDB_LOG(log, "Removing workaround");
if (sched_setaffinity(m_tid, sizeof m_original_set, &m_original_set) != 0) {
LLDB_LOG(log, "Unable to reset cpu affinity for thread {0}: {1}", m_tid,
- Error(errno, eErrorTypePOSIX));
+ Status(errno, eErrorTypePOSIX));
}
}
#endif
diff --git a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
index da0ed9aa0c6a..46d522531a5b 100644
--- a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
@@ -199,7 +199,7 @@ CommunicationKDP::WaitForPacketWithTimeoutMicroSeconds(DataExtractor &packet,
size_t CommunicationKDP::WaitForPacketWithTimeoutMicroSecondsNoLock(
DataExtractor &packet, uint32_t timeout_usec) {
uint8_t buffer[8192];
- Error error;
+ Status error;
Log *log(ProcessKDPLog::GetLogIfAllCategoriesSet(KDP_LOG_PACKETS));
@@ -602,7 +602,7 @@ bool CommunicationKDP::SendRequestDisconnect() {
uint32_t CommunicationKDP::SendRequestReadMemory(lldb::addr_t addr, void *dst,
uint32_t dst_len,
- Error &error) {
+ Status &error) {
PacketStreamType request_packet(Stream::eBinary, m_addr_byte_size,
m_byte_order);
bool use_64 = (GetVersion() >= 11);
@@ -641,7 +641,7 @@ uint32_t CommunicationKDP::SendRequestReadMemory(lldb::addr_t addr, void *dst,
uint32_t CommunicationKDP::SendRequestWriteMemory(lldb::addr_t addr,
const void *src,
uint32_t src_len,
- Error &error) {
+ Status &error) {
PacketStreamType request_packet(Stream::eBinary, m_addr_byte_size,
m_byte_order);
bool use_64 = (GetVersion() >= 11);
@@ -675,7 +675,7 @@ bool CommunicationKDP::SendRawRequest(
uint8_t command_byte,
const void *src, // Raw packet payload bytes
uint32_t src_len, // Raw packet payload length
- DataExtractor &reply_packet, Error &error) {
+ DataExtractor &reply_packet, Status &error) {
PacketStreamType request_packet(Stream::eBinary, m_addr_byte_size,
m_byte_order);
// Size is header + address size + uint32_t length
@@ -1224,7 +1224,7 @@ void CommunicationKDP::DumpPacket(Stream &s, const DataExtractor &packet) {
uint32_t CommunicationKDP::SendRequestReadRegisters(uint32_t cpu,
uint32_t flavor, void *dst,
uint32_t dst_len,
- Error &error) {
+ Status &error) {
PacketStreamType request_packet(Stream::eBinary, m_addr_byte_size,
m_byte_order);
const CommandType command = KDP_READREGS;
@@ -1267,7 +1267,7 @@ uint32_t CommunicationKDP::SendRequestWriteRegisters(uint32_t cpu,
uint32_t flavor,
const void *src,
uint32_t src_len,
- Error &error) {
+ Status &error) {
PacketStreamType request_packet(Stream::eBinary, m_addr_byte_size,
m_byte_order);
const CommandType command = KDP_WRITEREGS;
diff --git a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
index eed3daa4647e..afac6601a56b 100644
--- a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
+++ b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
@@ -128,22 +128,24 @@ public:
bool SendRequestDisconnect();
uint32_t SendRequestReadMemory(lldb::addr_t addr, void *dst,
- uint32_t dst_size, lldb_private::Error &error);
+ uint32_t dst_size,
+ lldb_private::Status &error);
uint32_t SendRequestWriteMemory(lldb::addr_t addr, const void *src,
- uint32_t src_len, lldb_private::Error &error);
+ uint32_t src_len,
+ lldb_private::Status &error);
bool SendRawRequest(uint8_t command_byte, const void *src, uint32_t src_len,
lldb_private::DataExtractor &reply,
- lldb_private::Error &error);
+ lldb_private::Status &error);
uint32_t SendRequestReadRegisters(uint32_t cpu, uint32_t flavor, void *dst,
uint32_t dst_size,
- lldb_private::Error &error);
+ lldb_private::Status &error);
uint32_t SendRequestWriteRegisters(uint32_t cpu, uint32_t flavor,
const void *src, uint32_t src_size,
- lldb_private::Error &error);
+ lldb_private::Status &error);
const char *GetKernelVersion();
diff --git a/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
index 6b2e675afaea..f01f1ace583c 100644
--- a/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
@@ -188,22 +188,22 @@ lldb_private::ConstString ProcessKDP::GetPluginName() {
uint32_t ProcessKDP::GetPluginVersion() { return 1; }
-Error ProcessKDP::WillLaunch(Module *module) {
- Error error;
+Status ProcessKDP::WillLaunch(Module *module) {
+ Status error;
error.SetErrorString("launching not supported in kdp-remote plug-in");
return error;
}
-Error ProcessKDP::WillAttachToProcessWithID(lldb::pid_t pid) {
- Error error;
+Status ProcessKDP::WillAttachToProcessWithID(lldb::pid_t pid) {
+ Status error;
error.SetErrorString(
"attaching to a by process ID not supported in kdp-remote plug-in");
return error;
}
-Error ProcessKDP::WillAttachToProcessWithName(const char *process_name,
- bool wait_for_launch) {
- Error error;
+Status ProcessKDP::WillAttachToProcessWithName(const char *process_name,
+ bool wait_for_launch) {
+ Status error;
error.SetErrorString(
"attaching to a by process name not supported in kdp-remote plug-in");
return error;
@@ -223,8 +223,8 @@ bool ProcessKDP::GetHostArchitecture(ArchSpec &arch) {
return false;
}
-Error ProcessKDP::DoConnectRemote(Stream *strm, llvm::StringRef remote_url) {
- Error error;
+Status ProcessKDP::DoConnectRemote(Stream *strm, llvm::StringRef remote_url) {
+ Status error;
// Don't let any JIT happen when doing KDP as we can't allocate
// memory and we don't want to be mucking with threads that might
@@ -374,23 +374,26 @@ Error ProcessKDP::DoConnectRemote(Stream *strm, llvm::StringRef remote_url) {
//----------------------------------------------------------------------
// Process Control
//----------------------------------------------------------------------
-Error ProcessKDP::DoLaunch(Module *exe_module, ProcessLaunchInfo &launch_info) {
- Error error;
+Status ProcessKDP::DoLaunch(Module *exe_module,
+ ProcessLaunchInfo &launch_info) {
+ Status error;
error.SetErrorString("launching not supported in kdp-remote plug-in");
return error;
}
-Error ProcessKDP::DoAttachToProcessWithID(
- lldb::pid_t attach_pid, const ProcessAttachInfo &attach_info) {
- Error error;
+Status
+ProcessKDP::DoAttachToProcessWithID(lldb::pid_t attach_pid,
+ const ProcessAttachInfo &attach_info) {
+ Status error;
error.SetErrorString(
"attach to process by ID is not suppported in kdp remote debugging");
return error;
}
-Error ProcessKDP::DoAttachToProcessWithName(
- const char *process_name, const ProcessAttachInfo &attach_info) {
- Error error;
+Status
+ProcessKDP::DoAttachToProcessWithName(const char *process_name,
+ const ProcessAttachInfo &attach_info) {
+ Status error;
error.SetErrorString(
"attach to process by name is not suppported in kdp remote debugging");
return error;
@@ -417,10 +420,10 @@ lldb_private::DynamicLoader *ProcessKDP::GetDynamicLoader() {
return m_dyld_ap.get();
}
-Error ProcessKDP::WillResume() { return Error(); }
+Status ProcessKDP::WillResume() { return Status(); }
-Error ProcessKDP::DoResume() {
- Error error;
+Status ProcessKDP::DoResume() {
+ Status error;
Log *log(ProcessKDPLog::GetLogIfAllCategoriesSet(KDP_LOG_PROCESS));
// Only start the async thread if we try to do any process control
if (!m_async_thread.IsJoinable())
@@ -537,8 +540,8 @@ void ProcessKDP::RefreshStateAfterStop() {
m_thread_list.RefreshStateAfterStop();
}
-Error ProcessKDP::DoHalt(bool &caused_stop) {
- Error error;
+Status ProcessKDP::DoHalt(bool &caused_stop) {
+ Status error;
if (m_comm.IsRunning()) {
if (m_destroy_in_process) {
@@ -553,8 +556,8 @@ Error ProcessKDP::DoHalt(bool &caused_stop) {
return error;
}
-Error ProcessKDP::DoDetach(bool keep_stopped) {
- Error error;
+Status ProcessKDP::DoDetach(bool keep_stopped) {
+ Status error;
Log *log(ProcessKDPLog::GetLogIfAllCategoriesSet(KDP_LOG_PROCESS));
if (log)
log->Printf("ProcessKDP::DoDetach(keep_stopped = %i)", keep_stopped);
@@ -588,7 +591,7 @@ Error ProcessKDP::DoDetach(bool keep_stopped) {
return error;
}
-Error ProcessKDP::DoDestroy() {
+Status ProcessKDP::DoDestroy() {
// For KDP there really is no difference between destroy and detach
bool keep_stopped = false;
return DoDetach(keep_stopped);
@@ -606,7 +609,7 @@ bool ProcessKDP::IsAlive() {
// Process Memory
//------------------------------------------------------------------
size_t ProcessKDP::DoReadMemory(addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
uint8_t *data_buffer = (uint8_t *)buf;
if (m_comm.IsConnected()) {
const size_t max_read_size = 512;
@@ -634,7 +637,7 @@ size_t ProcessKDP::DoReadMemory(addr_t addr, void *buf, size_t size,
}
size_t ProcessKDP::DoWriteMemory(addr_t addr, const void *buf, size_t size,
- Error &error) {
+ Status &error) {
if (m_comm.IsConnected())
return m_comm.SendRequestWriteMemory(addr, buf, size, error);
error.SetErrorString("not connected");
@@ -642,22 +645,22 @@ size_t ProcessKDP::DoWriteMemory(addr_t addr, const void *buf, size_t size,
}
lldb::addr_t ProcessKDP::DoAllocateMemory(size_t size, uint32_t permissions,
- Error &error) {
+ Status &error) {
error.SetErrorString(
"memory allocation not suppported in kdp remote debugging");
return LLDB_INVALID_ADDRESS;
}
-Error ProcessKDP::DoDeallocateMemory(lldb::addr_t addr) {
- Error error;
+Status ProcessKDP::DoDeallocateMemory(lldb::addr_t addr) {
+ Status error;
error.SetErrorString(
"memory deallocation not suppported in kdp remote debugging");
return error;
}
-Error ProcessKDP::EnableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessKDP::EnableBreakpointSite(BreakpointSite *bp_site) {
if (m_comm.LocalBreakpointsAreSupported()) {
- Error error;
+ Status error;
if (!bp_site->IsEnabled()) {
if (m_comm.SendRequestBreakpoint(true, bp_site->GetLoadAddress())) {
bp_site->SetEnabled(true);
@@ -671,9 +674,9 @@ Error ProcessKDP::EnableBreakpointSite(BreakpointSite *bp_site) {
return EnableSoftwareBreakpoint(bp_site);
}
-Error ProcessKDP::DisableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessKDP::DisableBreakpointSite(BreakpointSite *bp_site) {
if (m_comm.LocalBreakpointsAreSupported()) {
- Error error;
+ Status error;
if (bp_site->IsEnabled()) {
BreakpointSite::Type bp_type = bp_site->GetType();
if (bp_type == BreakpointSite::eExternal) {
@@ -695,15 +698,15 @@ Error ProcessKDP::DisableBreakpointSite(BreakpointSite *bp_site) {
return DisableSoftwareBreakpoint(bp_site);
}
-Error ProcessKDP::EnableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessKDP::EnableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
error.SetErrorString(
"watchpoints are not suppported in kdp remote debugging");
return error;
}
-Error ProcessKDP::DisableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessKDP::DisableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
error.SetErrorString(
"watchpoints are not suppported in kdp remote debugging");
return error;
@@ -711,8 +714,8 @@ Error ProcessKDP::DisableWatchpoint(Watchpoint *wp, bool notify) {
void ProcessKDP::Clear() { m_thread_list.Clear(); }
-Error ProcessKDP::DoSignal(int signo) {
- Error error;
+Status ProcessKDP::DoSignal(int signo) {
+ Status error;
error.SetErrorString(
"sending signals is not suppported in kdp remote debugging");
return error;
@@ -950,7 +953,7 @@ public:
return false;
}
}
- Error error;
+ Status error;
DataExtractor reply;
process->GetCommunication().SendRawRequest(
command_byte,
diff --git a/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h b/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
index 8f1033b9fd36..52b9441e0e79 100644
--- a/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
+++ b/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
@@ -24,7 +24,7 @@
#include "lldb/Target/Process.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/StringList.h"
@@ -68,26 +68,26 @@ public:
//------------------------------------------------------------------
// Creating a new process, or attaching to an existing one
//------------------------------------------------------------------
- lldb_private::Error WillLaunch(lldb_private::Module *module) override;
+ lldb_private::Status WillLaunch(lldb_private::Module *module) override;
- lldb_private::Error
+ lldb_private::Status
DoLaunch(lldb_private::Module *exe_module,
lldb_private::ProcessLaunchInfo &launch_info) override;
- lldb_private::Error WillAttachToProcessWithID(lldb::pid_t pid) override;
+ lldb_private::Status WillAttachToProcessWithID(lldb::pid_t pid) override;
- lldb_private::Error
+ lldb_private::Status
WillAttachToProcessWithName(const char *process_name,
bool wait_for_launch) override;
- lldb_private::Error DoConnectRemote(lldb_private::Stream *strm,
- llvm::StringRef remote_url) override;
+ lldb_private::Status DoConnectRemote(lldb_private::Stream *strm,
+ llvm::StringRef remote_url) override;
- lldb_private::Error DoAttachToProcessWithID(
+ lldb_private::Status DoAttachToProcessWithID(
lldb::pid_t pid,
const lldb_private::ProcessAttachInfo &attach_info) override;
- lldb_private::Error DoAttachToProcessWithName(
+ lldb_private::Status DoAttachToProcessWithName(
const char *process_name,
const lldb_private::ProcessAttachInfo &attach_info) override;
@@ -107,17 +107,17 @@ public:
//------------------------------------------------------------------
// Process Control
//------------------------------------------------------------------
- lldb_private::Error WillResume() override;
+ lldb_private::Status WillResume() override;
- lldb_private::Error DoResume() override;
+ lldb_private::Status DoResume() override;
- lldb_private::Error DoHalt(bool &caused_stop) override;
+ lldb_private::Status DoHalt(bool &caused_stop) override;
- lldb_private::Error DoDetach(bool keep_stopped) override;
+ lldb_private::Status DoDetach(bool keep_stopped) override;
- lldb_private::Error DoSignal(int signal) override;
+ lldb_private::Status DoSignal(int signal) override;
- lldb_private::Error DoDestroy() override;
+ lldb_private::Status DoDestroy() override;
void RefreshStateAfterStop() override;
@@ -130,34 +130,34 @@ public:
// Process Memory
//------------------------------------------------------------------
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
size_t DoWriteMemory(lldb::addr_t addr, const void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
lldb::addr_t DoAllocateMemory(size_t size, uint32_t permissions,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
- lldb_private::Error DoDeallocateMemory(lldb::addr_t ptr) override;
+ lldb_private::Status DoDeallocateMemory(lldb::addr_t ptr) override;
//----------------------------------------------------------------------
// Process Breakpoints
//----------------------------------------------------------------------
- lldb_private::Error
+ lldb_private::Status
EnableBreakpointSite(lldb_private::BreakpointSite *bp_site) override;
- lldb_private::Error
+ lldb_private::Status
DisableBreakpointSite(lldb_private::BreakpointSite *bp_site) override;
//----------------------------------------------------------------------
// Process Watchpoints
//----------------------------------------------------------------------
- lldb_private::Error EnableWatchpoint(lldb_private::Watchpoint *wp,
- bool notify = true) override;
-
- lldb_private::Error DisableWatchpoint(lldb_private::Watchpoint *wp,
+ lldb_private::Status EnableWatchpoint(lldb_private::Watchpoint *wp,
bool notify = true) override;
+ lldb_private::Status DisableWatchpoint(lldb_private::Watchpoint *wp,
+ bool notify = true) override;
+
CommunicationKDP &GetCommunication() { return m_comm; }
protected:
diff --git a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp
index 06c33dba8576..159a046b617d 100644
--- a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp
@@ -29,7 +29,7 @@ RegisterContextKDP_arm::~RegisterContextKDP_arm() {}
int RegisterContextKDP_arm::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -44,7 +44,7 @@ int RegisterContextKDP_arm::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
int RegisterContextKDP_arm::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -59,7 +59,7 @@ int RegisterContextKDP_arm::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
int RegisterContextKDP_arm::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -74,7 +74,7 @@ int RegisterContextKDP_arm::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
int RegisterContextKDP_arm::DoReadDBG(lldb::tid_t tid, int flavor, DBG &dbg) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),
@@ -90,7 +90,7 @@ int RegisterContextKDP_arm::DoWriteGPR(lldb::tid_t tid, int flavor,
const GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -106,7 +106,7 @@ int RegisterContextKDP_arm::DoWriteFPU(lldb::tid_t tid, int flavor,
const FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -122,7 +122,7 @@ int RegisterContextKDP_arm::DoWriteEXC(lldb::tid_t tid, int flavor,
const EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -138,7 +138,7 @@ int RegisterContextKDP_arm::DoWriteDBG(lldb::tid_t tid, int flavor,
const DBG &dbg) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),
diff --git a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp
index 6a2733e62759..44534a252568 100644
--- a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp
@@ -30,7 +30,7 @@ RegisterContextKDP_arm64::~RegisterContextKDP_arm64() {}
int RegisterContextKDP_arm64::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -45,7 +45,7 @@ int RegisterContextKDP_arm64::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
int RegisterContextKDP_arm64::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -60,7 +60,7 @@ int RegisterContextKDP_arm64::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
int RegisterContextKDP_arm64::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -75,7 +75,7 @@ int RegisterContextKDP_arm64::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
int RegisterContextKDP_arm64::DoReadDBG(lldb::tid_t tid, int flavor, DBG &dbg) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),
@@ -91,7 +91,7 @@ int RegisterContextKDP_arm64::DoWriteGPR(lldb::tid_t tid, int flavor,
const GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -107,7 +107,7 @@ int RegisterContextKDP_arm64::DoWriteFPU(lldb::tid_t tid, int flavor,
const FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -123,7 +123,7 @@ int RegisterContextKDP_arm64::DoWriteEXC(lldb::tid_t tid, int flavor,
const EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -139,7 +139,7 @@ int RegisterContextKDP_arm64::DoWriteDBG(lldb::tid_t tid, int flavor,
const DBG &dbg) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),
diff --git a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp
index 4a130c18d075..e48232ad8dda 100644
--- a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp
@@ -28,7 +28,7 @@ RegisterContextKDP_i386::~RegisterContextKDP_i386() {}
int RegisterContextKDP_i386::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -43,7 +43,7 @@ int RegisterContextKDP_i386::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
int RegisterContextKDP_i386::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -58,7 +58,7 @@ int RegisterContextKDP_i386::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
int RegisterContextKDP_i386::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -74,7 +74,7 @@ int RegisterContextKDP_i386::DoWriteGPR(lldb::tid_t tid, int flavor,
const GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -90,7 +90,7 @@ int RegisterContextKDP_i386::DoWriteFPU(lldb::tid_t tid, int flavor,
const FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -106,7 +106,7 @@ int RegisterContextKDP_i386::DoWriteEXC(lldb::tid_t tid, int flavor,
const EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, EXCRegSet, &exc, sizeof(exc),
diff --git a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp
index ad10d3f6be52..50e11f381925 100644
--- a/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp
+++ b/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp
@@ -29,7 +29,7 @@ int RegisterContextKDP_x86_64::DoReadGPR(lldb::tid_t tid, int flavor,
GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -45,7 +45,7 @@ int RegisterContextKDP_x86_64::DoReadFPU(lldb::tid_t tid, int flavor,
FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -61,7 +61,7 @@ int RegisterContextKDP_x86_64::DoReadEXC(lldb::tid_t tid, int flavor,
EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestReadRegisters(tid, EXCRegSet, &exc, sizeof(exc),
@@ -77,7 +77,7 @@ int RegisterContextKDP_x86_64::DoWriteGPR(lldb::tid_t tid, int flavor,
const GPR &gpr) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
@@ -93,7 +93,7 @@ int RegisterContextKDP_x86_64::DoWriteFPU(lldb::tid_t tid, int flavor,
const FPU &fpu) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
@@ -109,7 +109,7 @@ int RegisterContextKDP_x86_64::DoWriteEXC(lldb::tid_t tid, int flavor,
const EXC &exc) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (static_cast<ProcessKDP *>(process_sp.get())
->GetCommunication()
.SendRequestWriteRegisters(tid, EXCRegSet, &exc, sizeof(exc),
diff --git a/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp b/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
index 347c12943bd5..80751147b4f5 100644
--- a/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
+++ b/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
@@ -68,8 +68,8 @@ static int convert_pid_status_to_return_code(int status) {
// Simple helper function to ensure flags are enabled on the given file
// descriptor.
-static Error EnsureFDFlags(int fd, int flags) {
- Error error;
+static Status EnsureFDFlags(int fd, int flags) {
+ Status error;
int status = fcntl(fd, F_GETFL);
if (status == -1) {
@@ -89,13 +89,13 @@ static Error EnsureFDFlags(int fd, int flags) {
// Public Static Methods
// -----------------------------------------------------------------------------
-Error NativeProcessProtocol::Launch(
+Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info,
NativeProcessProtocol::NativeDelegate &native_delegate, MainLoop &mainloop,
NativeProcessProtocolSP &native_process_sp) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
- Error error;
+ Status error;
// Verify the working directory is valid if one was specified.
FileSpec working_dir{launch_info.GetWorkingDirectory()};
@@ -129,7 +129,7 @@ Error NativeProcessProtocol::Launch(
return error;
}
-Error NativeProcessProtocol::Attach(
+Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &native_process_sp) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
@@ -137,7 +137,7 @@ Error NativeProcessProtocol::Attach(
// Retrieve the architecture for the running process.
ArchSpec process_arch;
- Error error = ResolveProcessArchitecture(pid, process_arch);
+ Status error = ResolveProcessArchitecture(pid, process_arch);
if (!error.Success())
return error;
@@ -245,7 +245,7 @@ void NativeProcessNetBSD::MonitorSIGTRAP(lldb::pid_t pid) {
SetState(StateType::eStateStopped, true);
break;
case TRAP_EXEC: {
- Error error = ReinitializeThreads();
+ Status error = ReinitializeThreads();
if (error.Fail()) {
SetState(StateType::eStateInvalid);
return;
@@ -262,7 +262,7 @@ void NativeProcessNetBSD::MonitorSIGTRAP(lldb::pid_t pid) {
case TRAP_DBREG: {
// If a watchpoint was hit, report it
uint32_t wp_index;
- Error error =
+ Status error =
static_pointer_cast<NativeThreadNetBSD>(m_threads[info.psi_lwpid])
->GetRegisterContext()
->GetWatchpointHitIndex(wp_index,
@@ -318,10 +318,10 @@ void NativeProcessNetBSD::MonitorSignal(lldb::pid_t pid, int signal) {
SetState(StateType::eStateStopped, true);
}
-Error NativeProcessNetBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
- int data, int *result) {
+Status NativeProcessNetBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
+ int data, int *result) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PTRACE));
- Error error;
+ Status error;
int ret;
errno = 0;
@@ -341,7 +341,7 @@ Error NativeProcessNetBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
return error;
}
-Error NativeProcessNetBSD::GetSoftwareBreakpointPCOffset(
+Status NativeProcessNetBSD::GetSoftwareBreakpointPCOffset(
uint32_t &actual_opcode_size) {
// FIXME put this behind a breakpoint protocol class that can be
// set per architecture. Need ARM, MIPS support here.
@@ -349,17 +349,17 @@ Error NativeProcessNetBSD::GetSoftwareBreakpointPCOffset(
switch (m_arch.GetMachine()) {
case llvm::Triple::x86_64:
actual_opcode_size = static_cast<uint32_t>(sizeof(g_i386_opcode));
- return Error();
+ return Status();
default:
assert(false && "CPU type not supported!");
- return Error("CPU type not supported");
+ return Status("CPU type not supported");
}
}
-Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
- NativeThreadNetBSD &thread) {
+Status
+NativeProcessNetBSD::FixupBreakpointPCAsNeeded(NativeThreadNetBSD &thread) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_BREAKPOINTS));
- Error error;
+ Status error;
// Find out the size of a breakpoint (might depend on where we are in the
// code).
NativeRegisterContextSP context_sp = thread.GetRegisterContext();
@@ -394,7 +394,7 @@ Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
"pid {0} no lldb breakpoint found at current pc with "
"adjustment: {1}",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
// If the breakpoint is not a software breakpoint, nothing to do.
if (!breakpoint_sp->IsSoftwareBreakpoint()) {
@@ -402,7 +402,7 @@ Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
log,
"pid {0} breakpoint found at {1:x}, not software, nothing to adjust",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
//
// We have a software breakpoint and need to adjust the PC.
@@ -414,7 +414,7 @@ Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
"pid {0} breakpoint found at {1:x}, it is software, but the "
"size is zero, nothing to do (unexpected)",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
//
// We have a software breakpoint and need to adjust the PC.
@@ -426,7 +426,7 @@ Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
"pid {0} breakpoint found at {1:x}, it is software, but the "
"size is zero, nothing to do (unexpected)",
GetID(), breakpoint_addr);
- return Error();
+ return Status();
}
// Change the program counter.
LLDB_LOG(log, "pid {0} tid {1}: changing PC from {2:x} to {3:x}", GetID(),
@@ -440,7 +440,7 @@ Error NativeProcessNetBSD::FixupBreakpointPCAsNeeded(
return error;
}
-Error NativeProcessNetBSD::Resume(const ResumeActionList &resume_actions) {
+Status NativeProcessNetBSD::Resume(const ResumeActionList &resume_actions) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid {0}", GetID());
@@ -451,10 +451,10 @@ Error NativeProcessNetBSD::Resume(const ResumeActionList &resume_actions) {
if (action == nullptr) {
LLDB_LOG(log, "no action specified for pid {0} tid {1}", GetID(),
thread_sp->GetID());
- return Error();
+ return Status();
}
- Error error;
+ Status error;
switch (action->state) {
case eStateRunning: {
@@ -486,17 +486,17 @@ Error NativeProcessNetBSD::Resume(const ResumeActionList &resume_actions) {
llvm_unreachable("Unexpected state");
default:
- return Error("NativeProcessNetBSD::%s (): unexpected state %s specified "
- "for pid %" PRIu64 ", tid %" PRIu64,
- __FUNCTION__, StateAsCString(action->state), GetID(),
- thread_sp->GetID());
+ return Status("NativeProcessNetBSD::%s (): unexpected state %s specified "
+ "for pid %" PRIu64 ", tid %" PRIu64,
+ __FUNCTION__, StateAsCString(action->state), GetID(),
+ thread_sp->GetID());
}
- return Error();
+ return Status();
}
-Error NativeProcessNetBSD::Halt() {
- Error error;
+Status NativeProcessNetBSD::Halt() {
+ Status error;
if (kill(GetID(), SIGSTOP) != 0)
error.SetErrorToErrno();
@@ -504,8 +504,8 @@ Error NativeProcessNetBSD::Halt() {
return error;
}
-Error NativeProcessNetBSD::Detach() {
- Error error;
+Status NativeProcessNetBSD::Detach() {
+ Status error;
// Stop monitoring the inferior.
m_sigchld_handle.reset();
@@ -517,8 +517,8 @@ Error NativeProcessNetBSD::Detach() {
return PtraceWrapper(PT_DETACH, GetID());
}
-Error NativeProcessNetBSD::Signal(int signo) {
- Error error;
+Status NativeProcessNetBSD::Signal(int signo) {
+ Status error;
if (kill(GetID(), signo))
error.SetErrorToErrno();
@@ -526,11 +526,11 @@ Error NativeProcessNetBSD::Signal(int signo) {
return error;
}
-Error NativeProcessNetBSD::Kill() {
+Status NativeProcessNetBSD::Kill() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid {0}", GetID());
- Error error;
+ Status error;
switch (m_state) {
case StateType::eStateInvalid:
@@ -562,15 +562,15 @@ Error NativeProcessNetBSD::Kill() {
return error;
}
-Error NativeProcessNetBSD::GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) {
+Status NativeProcessNetBSD::GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) {
if (m_supports_mem_region == LazyBool::eLazyBoolNo) {
// We're done.
- return Error("unsupported");
+ return Status("unsupported");
}
- Error error = PopulateMemoryRegionCache();
+ Status error = PopulateMemoryRegionCache();
if (error.Fail()) {
return error;
}
@@ -619,14 +619,14 @@ Error NativeProcessNetBSD::GetMemoryRegionInfo(lldb::addr_t load_addr,
return error;
}
-Error NativeProcessNetBSD::PopulateMemoryRegionCache() {
+Status NativeProcessNetBSD::PopulateMemoryRegionCache() {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
// If our cache is empty, pull the latest. There should always be at least
// one memory region if memory region handling is supported.
if (!m_mem_region_cache.empty()) {
LLDB_LOG(log, "reusing {0} cached memory region entries",
m_mem_region_cache.size());
- return Error();
+ return Status();
}
struct kinfo_vmentry *vm;
@@ -634,7 +634,7 @@ Error NativeProcessNetBSD::PopulateMemoryRegionCache() {
vm = kinfo_getvmmap(GetID(), &count);
if (vm == NULL) {
m_supports_mem_region = LazyBool::eLazyBoolNo;
- Error error;
+ Status error;
error.SetErrorString("not supported");
return error;
}
@@ -674,7 +674,7 @@ Error NativeProcessNetBSD::PopulateMemoryRegionCache() {
LLDB_LOG(log, "failed to find any vmmap entries, assuming no support "
"for memory region metadata retrieval");
m_supports_mem_region = LazyBool::eLazyBoolNo;
- Error error;
+ Status error;
error.SetErrorString("not supported");
return error;
}
@@ -682,16 +682,16 @@ Error NativeProcessNetBSD::PopulateMemoryRegionCache() {
m_mem_region_cache.size(), GetID());
// We support memory retrieval, remember that.
m_supports_mem_region = LazyBool::eLazyBoolYes;
- return Error();
+ return Status();
}
-Error NativeProcessNetBSD::AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) {
- return Error("Unimplemented");
+Status NativeProcessNetBSD::AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) {
+ return Status("Unimplemented");
}
-Error NativeProcessNetBSD::DeallocateMemory(lldb::addr_t addr) {
- return Error("Unimplemented");
+Status NativeProcessNetBSD::DeallocateMemory(lldb::addr_t addr) {
+ return Status("Unimplemented");
}
lldb::addr_t NativeProcessNetBSD::GetSharedLibraryInfoAddress() {
@@ -706,15 +706,15 @@ bool NativeProcessNetBSD::GetArchitecture(ArchSpec &arch) const {
return true;
}
-Error NativeProcessNetBSD::SetBreakpoint(lldb::addr_t addr, uint32_t size,
- bool hardware) {
+Status NativeProcessNetBSD::SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) {
if (hardware)
- return Error("NativeProcessNetBSD does not support hardware breakpoints");
+ return Status("NativeProcessNetBSD does not support hardware breakpoints");
else
return SetSoftwareBreakpoint(addr, size);
}
-Error NativeProcessNetBSD::GetSoftwareBreakpointTrapOpcode(
+Status NativeProcessNetBSD::GetSoftwareBreakpointTrapOpcode(
size_t trap_opcode_size_hint, size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) {
static const uint8_t g_i386_opcode[] = {0xCC};
@@ -724,27 +724,27 @@ Error NativeProcessNetBSD::GetSoftwareBreakpointTrapOpcode(
case llvm::Triple::x86_64:
trap_opcode_bytes = g_i386_opcode;
actual_opcode_size = sizeof(g_i386_opcode);
- return Error();
+ return Status();
default:
assert(false && "CPU type not supported!");
- return Error("CPU type not supported");
+ return Status("CPU type not supported");
}
}
-Error NativeProcessNetBSD::GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) {
- return Error("Unimplemented");
+Status NativeProcessNetBSD::GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) {
+ return Status("Unimplemented");
}
-Error NativeProcessNetBSD::GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) {
+Status NativeProcessNetBSD::GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) {
load_addr = LLDB_INVALID_ADDRESS;
- return Error();
+ return Status();
}
-Error NativeProcessNetBSD::LaunchInferior(MainLoop &mainloop,
- ProcessLaunchInfo &launch_info) {
- Error error;
+Status NativeProcessNetBSD::LaunchInferior(MainLoop &mainloop,
+ ProcessLaunchInfo &launch_info) {
+ Status error;
m_sigchld_handle = mainloop.RegisterSignal(
SIGCHLD, [this](MainLoopBase &) { SigchldHandler(); }, error);
if (!m_sigchld_handle)
@@ -826,7 +826,7 @@ Error NativeProcessNetBSD::LaunchInferior(MainLoop &mainloop,
}
void NativeProcessNetBSD::AttachToInferior(MainLoop &mainloop, lldb::pid_t pid,
- Error &error) {
+ Status &error) {
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
LLDB_LOG(log, "pid = {0:x}", pid);
@@ -862,7 +862,7 @@ void NativeProcessNetBSD::SigchldHandler() {
if (errno == EINTR)
return;
- Error error(errno, eErrorTypePOSIX);
+ Status error(errno, eErrorTypePOSIX);
LLDB_LOG(log, "waitpid ({0}, &status, _) failed: {1}", GetID(), error);
}
@@ -915,7 +915,7 @@ NativeThreadNetBSDSP NativeProcessNetBSD::AddThread(lldb::tid_t thread_id) {
return thread_sp;
}
-::pid_t NativeProcessNetBSD::Attach(lldb::pid_t pid, Error &error) {
+::pid_t NativeProcessNetBSD::Attach(lldb::pid_t pid, Status &error) {
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
if (pid <= 1) {
@@ -956,8 +956,8 @@ NativeThreadNetBSDSP NativeProcessNetBSD::AddThread(lldb::tid_t thread_id) {
return pid;
}
-Error NativeProcessNetBSD::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) {
+Status NativeProcessNetBSD::ReadMemory(lldb::addr_t addr, void *buf,
+ size_t size, size_t &bytes_read) {
unsigned char *dst = static_cast<unsigned char *>(buf);
struct ptrace_io_desc io;
@@ -972,7 +972,7 @@ Error NativeProcessNetBSD::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
io.piod_offs = (void *)(addr + bytes_read);
io.piod_addr = dst + bytes_read;
- Error error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
+ Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
if (error.Fail())
return error;
@@ -980,22 +980,22 @@ Error NativeProcessNetBSD::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
io.piod_len = size - bytes_read;
} while (bytes_read < size);
- return Error();
+ return Status();
}
-Error NativeProcessNetBSD::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
- size_t size,
- size_t &bytes_read) {
- Error error = ReadMemory(addr, buf, size, bytes_read);
+Status NativeProcessNetBSD::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
+ size_t size,
+ size_t &bytes_read) {
+ Status error = ReadMemory(addr, buf, size, bytes_read);
if (error.Fail())
return error;
return m_breakpoint_list.RemoveTrapsFromBuffer(addr, buf, size);
}
-Error NativeProcessNetBSD::WriteMemory(lldb::addr_t addr, const void *buf,
- size_t size, size_t &bytes_written) {
+Status NativeProcessNetBSD::WriteMemory(lldb::addr_t addr, const void *buf,
+ size_t size, size_t &bytes_written) {
const unsigned char *src = static_cast<const unsigned char *>(buf);
- Error error;
+ Status error;
struct ptrace_io_desc io;
Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_MEMORY));
@@ -1009,7 +1009,7 @@ Error NativeProcessNetBSD::WriteMemory(lldb::addr_t addr, const void *buf,
io.piod_addr = (void *)(src + bytes_written);
io.piod_offs = (void *)(addr + bytes_written);
- Error error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
+ Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
if (error.Fail())
return error;
@@ -1039,7 +1039,7 @@ NativeProcessNetBSD::GetAuxvData() const {
.piod_addr = (void *)buf.get()->getBufferStart(),
.piod_len = auxv_size};
- Error error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
+ Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io);
if (error.Fail())
return std::error_code(error.GetError(), std::generic_category());
@@ -1050,13 +1050,13 @@ NativeProcessNetBSD::GetAuxvData() const {
return buf;
}
-Error NativeProcessNetBSD::ReinitializeThreads() {
+Status NativeProcessNetBSD::ReinitializeThreads() {
// Clear old threads
m_threads.clear();
// Initialize new thread
struct ptrace_lwpinfo info = {};
- Error error = PtraceWrapper(PT_LWPINFO, GetID(), &info, sizeof(info));
+ Status error = PtraceWrapper(PT_LWPINFO, GetID(), &info, sizeof(info));
if (error.Fail()) {
return error;
}
diff --git a/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h b/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
index ae946a8e004d..e18ba162e523 100644
--- a/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
+++ b/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
@@ -31,11 +31,11 @@ namespace process_netbsd {
///
/// Changes in the inferior process state are broadcasted.
class NativeProcessNetBSD : public NativeProcessProtocol {
- friend Error NativeProcessProtocol::Launch(
+ friend Status NativeProcessProtocol::Launch(
ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
- friend Error NativeProcessProtocol::Attach(
+ friend Status NativeProcessProtocol::Attach(
lldb::pid_t pid, NativeProcessProtocol::NativeDelegate &native_delegate,
MainLoop &mainloop, NativeProcessProtocolSP &process_sp);
@@ -43,32 +43,32 @@ public:
// ---------------------------------------------------------------------
// NativeProcessProtocol Interface
// ---------------------------------------------------------------------
- Error Resume(const ResumeActionList &resume_actions) override;
+ Status Resume(const ResumeActionList &resume_actions) override;
- Error Halt() override;
+ Status Halt() override;
- Error Detach() override;
+ Status Detach() override;
- Error Signal(int signo) override;
+ Status Signal(int signo) override;
- Error Kill() override;
+ Status Kill() override;
- Error GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) override;
+ Status GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) override;
- Error ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemory(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
- size_t &bytes_read) override;
+ Status ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,
+ size_t &bytes_read) override;
- Error WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
- size_t &bytes_written) override;
+ Status WriteMemory(lldb::addr_t addr, const void *buf, size_t size,
+ size_t &bytes_written) override;
- Error AllocateMemory(size_t size, uint32_t permissions,
- lldb::addr_t &addr) override;
+ Status AllocateMemory(size_t size, uint32_t permissions,
+ lldb::addr_t &addr) override;
- Error DeallocateMemory(lldb::addr_t addr) override;
+ Status DeallocateMemory(lldb::addr_t addr) override;
lldb::addr_t GetSharedLibraryInfoAddress() override;
@@ -76,13 +76,14 @@ public:
bool GetArchitecture(ArchSpec &arch) const override;
- Error SetBreakpoint(lldb::addr_t addr, uint32_t size, bool hardware) override;
+ Status SetBreakpoint(lldb::addr_t addr, uint32_t size,
+ bool hardware) override;
- Error GetLoadedModuleFileSpec(const char *module_path,
- FileSpec &file_spec) override;
+ Status GetLoadedModuleFileSpec(const char *module_path,
+ FileSpec &file_spec) override;
- Error GetFileLoadAddress(const llvm::StringRef &file_name,
- lldb::addr_t &load_addr) override;
+ Status GetFileLoadAddress(const llvm::StringRef &file_name,
+ lldb::addr_t &load_addr) override;
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
GetAuxvData() const override;
@@ -90,15 +91,15 @@ public:
// ---------------------------------------------------------------------
// Interface used by NativeRegisterContext-derived classes.
// ---------------------------------------------------------------------
- static Error PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
- int data = 0, int *result = nullptr);
+ static Status PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
+ int data = 0, int *result = nullptr);
protected:
// ---------------------------------------------------------------------
// NativeProcessProtocol protected interface
// ---------------------------------------------------------------------
- Error
+ Status
GetSoftwareBreakpointTrapOpcode(size_t trap_opcode_size_hint,
size_t &actual_opcode_size,
const uint8_t *&trap_opcode_bytes) override;
@@ -116,8 +117,8 @@ private:
NativeThreadNetBSDSP AddThread(lldb::tid_t thread_id);
- Error LaunchInferior(MainLoop &mainloop, ProcessLaunchInfo &launch_info);
- void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Error &error);
+ Status LaunchInferior(MainLoop &mainloop, ProcessLaunchInfo &launch_info);
+ void AttachToInferior(MainLoop &mainloop, lldb::pid_t pid, Status &error);
void MonitorCallback(lldb::pid_t pid, int signal);
void MonitorExited(lldb::pid_t pid, int signal, int status);
@@ -125,14 +126,14 @@ private:
void MonitorSIGTRAP(lldb::pid_t pid);
void MonitorSignal(lldb::pid_t pid, int signal);
- Error GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
- Error FixupBreakpointPCAsNeeded(NativeThreadNetBSD &thread);
- Error PopulateMemoryRegionCache();
+ Status GetSoftwareBreakpointPCOffset(uint32_t &actual_opcode_size);
+ Status FixupBreakpointPCAsNeeded(NativeThreadNetBSD &thread);
+ Status PopulateMemoryRegionCache();
void SigchldHandler();
- ::pid_t Attach(lldb::pid_t pid, Error &error);
+ ::pid_t Attach(lldb::pid_t pid, Status &error);
- Error ReinitializeThreads();
+ Status ReinitializeThreads();
};
} // namespace process_netbsd
diff --git a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp
index cd47deac73ad..b442fc3462cc 100644
--- a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp
+++ b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp
@@ -25,80 +25,80 @@ NativeRegisterContextNetBSD::NativeRegisterContextNetBSD(
: NativeRegisterContextRegisterInfo(native_thread, concrete_frame_idx,
reg_info_interface_p) {}
-Error NativeRegisterContextNetBSD::ReadGPR() {
+Status NativeRegisterContextNetBSD::ReadGPR() {
void *buf = GetGPRBuffer();
if (!buf)
- return Error("GPR buffer is NULL");
+ return Status("GPR buffer is NULL");
return DoReadGPR(buf);
}
-Error NativeRegisterContextNetBSD::WriteGPR() {
+Status NativeRegisterContextNetBSD::WriteGPR() {
void *buf = GetGPRBuffer();
if (!buf)
- return Error("GPR buffer is NULL");
+ return Status("GPR buffer is NULL");
return DoWriteGPR(buf);
}
-Error NativeRegisterContextNetBSD::ReadFPR() {
+Status NativeRegisterContextNetBSD::ReadFPR() {
void *buf = GetFPRBuffer();
if (!buf)
- return Error("FPR buffer is NULL");
+ return Status("FPR buffer is NULL");
return DoReadFPR(buf);
}
-Error NativeRegisterContextNetBSD::WriteFPR() {
+Status NativeRegisterContextNetBSD::WriteFPR() {
void *buf = GetFPRBuffer();
if (!buf)
- return Error("FPR buffer is NULL");
+ return Status("FPR buffer is NULL");
return DoWriteFPR(buf);
}
-Error NativeRegisterContextNetBSD::ReadDBR() {
+Status NativeRegisterContextNetBSD::ReadDBR() {
void *buf = GetDBRBuffer();
if (!buf)
- return Error("DBR buffer is NULL");
+ return Status("DBR buffer is NULL");
return DoReadDBR(buf);
}
-Error NativeRegisterContextNetBSD::WriteDBR() {
+Status NativeRegisterContextNetBSD::WriteDBR() {
void *buf = GetDBRBuffer();
if (!buf)
- return Error("DBR buffer is NULL");
+ return Status("DBR buffer is NULL");
return DoWriteDBR(buf);
}
-Error NativeRegisterContextNetBSD::DoReadGPR(void *buf) {
+Status NativeRegisterContextNetBSD::DoReadGPR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_GETREGS, GetProcessPid(), buf,
m_thread.GetID());
}
-Error NativeRegisterContextNetBSD::DoWriteGPR(void *buf) {
+Status NativeRegisterContextNetBSD::DoWriteGPR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_SETREGS, GetProcessPid(), buf,
m_thread.GetID());
}
-Error NativeRegisterContextNetBSD::DoReadFPR(void *buf) {
+Status NativeRegisterContextNetBSD::DoReadFPR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_GETFPREGS, GetProcessPid(), buf,
m_thread.GetID());
}
-Error NativeRegisterContextNetBSD::DoWriteFPR(void *buf) {
+Status NativeRegisterContextNetBSD::DoWriteFPR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_SETFPREGS, GetProcessPid(), buf,
m_thread.GetID());
}
-Error NativeRegisterContextNetBSD::DoReadDBR(void *buf) {
+Status NativeRegisterContextNetBSD::DoReadDBR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_GETDBREGS, GetProcessPid(), buf,
m_thread.GetID());
}
-Error NativeRegisterContextNetBSD::DoWriteDBR(void *buf) {
+Status NativeRegisterContextNetBSD::DoWriteDBR(void *buf) {
return NativeProcessNetBSD::PtraceWrapper(PT_SETDBREGS, GetProcessPid(), buf,
m_thread.GetID());
}
diff --git a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
index d820baac3afa..d96b7aea0048 100644
--- a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
+++ b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
@@ -35,14 +35,14 @@ public:
uint32_t concrete_frame_idx);
protected:
- virtual Error ReadGPR();
- virtual Error WriteGPR();
+ virtual Status ReadGPR();
+ virtual Status WriteGPR();
- virtual Error ReadFPR();
- virtual Error WriteFPR();
+ virtual Status ReadFPR();
+ virtual Status WriteFPR();
- virtual Error ReadDBR();
- virtual Error WriteDBR();
+ virtual Status ReadDBR();
+ virtual Status WriteDBR();
virtual void *GetGPRBuffer() { return nullptr; }
virtual size_t GetGPRSize() {
@@ -55,14 +55,14 @@ protected:
virtual void *GetDBRBuffer() { return nullptr; }
virtual size_t GetDBRSize() { return 0; }
- virtual Error DoReadGPR(void *buf);
- virtual Error DoWriteGPR(void *buf);
+ virtual Status DoReadGPR(void *buf);
+ virtual Status DoWriteGPR(void *buf);
- virtual Error DoReadFPR(void *buf);
- virtual Error DoWriteFPR(void *buf);
+ virtual Status DoReadFPR(void *buf);
+ virtual Status DoWriteFPR(void *buf);
- virtual Error DoReadDBR(void *buf);
- virtual Error DoWriteDBR(void *buf);
+ virtual Status DoReadDBR(void *buf);
+ virtual Status DoWriteDBR(void *buf);
virtual NativeProcessNetBSD &GetProcess();
virtual ::pid_t GetProcessPid();
diff --git a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
index dc37be7b934b..9690da0e1374 100644
--- a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
+++ b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
@@ -14,8 +14,8 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h"
@@ -251,9 +251,10 @@ int NativeRegisterContextNetBSD_x86_64::WriteRegisterSet(uint32_t set) {
return -1;
}
-Error NativeRegisterContextNetBSD_x86_64::ReadRegister(
- const RegisterInfo *reg_info, RegisterValue &reg_value) {
- Error error;
+Status
+NativeRegisterContextNetBSD_x86_64::ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) {
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -446,10 +447,10 @@ Error NativeRegisterContextNetBSD_x86_64::ReadRegister(
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::WriteRegister(
+Status NativeRegisterContextNetBSD_x86_64::WriteRegister(
const RegisterInfo *reg_info, const RegisterValue &reg_value) {
- Error error;
+ Status error;
if (!reg_info) {
error.SetErrorString("reg_info NULL");
@@ -645,9 +646,9 @@ Error NativeRegisterContextNetBSD_x86_64::WriteRegister(
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::ReadAllRegisterValues(
+Status NativeRegisterContextNetBSD_x86_64::ReadAllRegisterValues(
lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0));
if (!data_sp) {
@@ -680,9 +681,9 @@ Error NativeRegisterContextNetBSD_x86_64::ReadAllRegisterValues(
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::WriteAllRegisterValues(
+Status NativeRegisterContextNetBSD_x86_64::WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp) {
- Error error;
+ Status error;
if (!data_sp) {
error.SetErrorStringWithFormat(
@@ -717,14 +718,14 @@ Error NativeRegisterContextNetBSD_x86_64::WriteAllRegisterValues(
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::IsWatchpointHit(uint32_t wp_index,
- bool &is_hit) {
+Status NativeRegisterContextNetBSD_x86_64::IsWatchpointHit(uint32_t wp_index,
+ bool &is_hit) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
RegisterValue reg_value;
const RegisterInfo *const reg_info = GetRegisterInfoAtIndex(lldb_dr6_x86_64);
- Error error = ReadRegister(reg_info, reg_value);
+ Status error = ReadRegister(reg_info, reg_value);
if (error.Fail()) {
is_hit = false;
return error;
@@ -737,12 +738,12 @@ Error NativeRegisterContextNetBSD_x86_64::IsWatchpointHit(uint32_t wp_index,
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::GetWatchpointHitIndex(
+Status NativeRegisterContextNetBSD_x86_64::GetWatchpointHitIndex(
uint32_t &wp_index, lldb::addr_t trap_addr) {
uint32_t num_hw_wps = NumSupportedHardwareWatchpoints();
for (wp_index = 0; wp_index < num_hw_wps; ++wp_index) {
bool is_hit;
- Error error = IsWatchpointHit(wp_index, is_hit);
+ Status error = IsWatchpointHit(wp_index, is_hit);
if (error.Fail()) {
wp_index = LLDB_INVALID_INDEX32;
return error;
@@ -751,17 +752,17 @@ Error NativeRegisterContextNetBSD_x86_64::GetWatchpointHitIndex(
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Status();
}
-Error NativeRegisterContextNetBSD_x86_64::IsWatchpointVacant(uint32_t wp_index,
- bool &is_vacant) {
+Status NativeRegisterContextNetBSD_x86_64::IsWatchpointVacant(uint32_t wp_index,
+ bool &is_vacant) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
RegisterValue reg_value;
const RegisterInfo *const reg_info = GetRegisterInfoAtIndex(lldb_dr7_x86_64);
- Error error = ReadRegister(reg_info, reg_value);
+ Status error = ReadRegister(reg_info, reg_value);
if (error.Fail()) {
is_vacant = false;
return error;
@@ -774,11 +775,11 @@ Error NativeRegisterContextNetBSD_x86_64::IsWatchpointVacant(uint32_t wp_index,
return error;
}
-Error NativeRegisterContextNetBSD_x86_64::SetHardwareWatchpointWithIndex(
+Status NativeRegisterContextNetBSD_x86_64::SetHardwareWatchpointWithIndex(
lldb::addr_t addr, size_t size, uint32_t watch_flags, uint32_t wp_index) {
if (wp_index >= NumSupportedHardwareWatchpoints())
- return Error("Watchpoint index out of range");
+ return Status("Watchpoint index out of range");
// Read only watchpoints aren't supported on x86_64. Fall back to read/write
// waitchpoints instead.
@@ -788,17 +789,17 @@ Error NativeRegisterContextNetBSD_x86_64::SetHardwareWatchpointWithIndex(
watch_flags = 0x3;
if (watch_flags != 0x1 && watch_flags != 0x3)
- return Error("Invalid read/write bits for watchpoint");
+ return Status("Invalid read/write bits for watchpoint");
if (size != 1 && size != 2 && size != 4 && size != 8)
- return Error("Invalid size for watchpoint");
+ return Status("Invalid size for watchpoint");
bool is_vacant;
- Error error = IsWatchpointVacant(wp_index, is_vacant);
+ Status error = IsWatchpointVacant(wp_index, is_vacant);
if (error.Fail())
return error;
if (!is_vacant)
- return Error("Watchpoint index not vacant");
+ return Status("Watchpoint index not vacant");
RegisterValue reg_value;
const RegisterInfo *const reg_info_dr7 =
@@ -851,7 +852,7 @@ bool NativeRegisterContextNetBSD_x86_64::ClearHardwareWatchpoint(
// clear bits 0, 1, 2, or 3 of the debug status register (DR6)
const RegisterInfo *const reg_info_dr6 =
GetRegisterInfoAtIndex(lldb_dr6_x86_64);
- Error error = ReadRegister(reg_info_dr6, reg_value);
+ Status error = ReadRegister(reg_info_dr6, reg_value);
if (error.Fail())
return false;
uint64_t bit_mask = 1 << wp_index;
@@ -873,13 +874,13 @@ bool NativeRegisterContextNetBSD_x86_64::ClearHardwareWatchpoint(
return WriteRegister(reg_info_dr7, RegisterValue(control_bits)).Success();
}
-Error NativeRegisterContextNetBSD_x86_64::ClearAllHardwareWatchpoints() {
+Status NativeRegisterContextNetBSD_x86_64::ClearAllHardwareWatchpoints() {
RegisterValue reg_value;
// clear bits {0-4} of the debug status register (DR6)
const RegisterInfo *const reg_info_dr6 =
GetRegisterInfoAtIndex(lldb_dr6_x86_64);
- Error error = ReadRegister(reg_info_dr6, reg_value);
+ Status error = ReadRegister(reg_info_dr6, reg_value);
if (error.Fail())
return error;
uint64_t bit_mask = 0xF;
@@ -905,7 +906,7 @@ uint32_t NativeRegisterContextNetBSD_x86_64::SetHardwareWatchpoint(
const uint32_t num_hw_watchpoints = NumSupportedHardwareWatchpoints();
for (uint32_t wp_index = 0; wp_index < num_hw_watchpoints; ++wp_index) {
bool is_vacant;
- Error error = IsWatchpointVacant(wp_index, is_vacant);
+ Status error = IsWatchpointVacant(wp_index, is_vacant);
if (is_vacant) {
error = SetHardwareWatchpointWithIndex(addr, size, watch_flags, wp_index);
if (error.Success())
diff --git a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h
index 35b7cf1c2f19..5f5a6a0792e4 100644
--- a/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h
+++ b/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h
@@ -36,29 +36,30 @@ public:
const RegisterSet *GetRegisterSet(uint32_t set_index) const override;
- Error ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &reg_value) override;
+ Status ReadRegister(const RegisterInfo *reg_info,
+ RegisterValue &reg_value) override;
- Error WriteRegister(const RegisterInfo *reg_info,
- const RegisterValue &reg_value) override;
+ Status WriteRegister(const RegisterInfo *reg_info,
+ const RegisterValue &reg_value) override;
- Error ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
+ Status ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
- Error WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
+ Status WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
- Error IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
+ Status IsWatchpointHit(uint32_t wp_index, bool &is_hit) override;
- Error GetWatchpointHitIndex(uint32_t &wp_index,
- lldb::addr_t trap_addr) override;
+ Status GetWatchpointHitIndex(uint32_t &wp_index,
+ lldb::addr_t trap_addr) override;
- Error IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
+ Status IsWatchpointVacant(uint32_t wp_index, bool &is_vacant) override;
bool ClearHardwareWatchpoint(uint32_t wp_index) override;
- Error ClearAllHardwareWatchpoints() override;
+ Status ClearAllHardwareWatchpoints() override;
- Error SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, uint32_t wp_index);
+ Status SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags,
+ uint32_t wp_index);
uint32_t SetHardwareWatchpoint(lldb::addr_t addr, size_t size,
uint32_t watch_flags) override;
diff --git a/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp b/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp
index 9beb65288c2f..8a16431b016d 100644
--- a/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp
+++ b/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp
@@ -160,40 +160,40 @@ NativeRegisterContextSP NativeThreadNetBSD::GetRegisterContext() {
return m_reg_context_sp;
}
-Error NativeThreadNetBSD::SetWatchpoint(lldb::addr_t addr, size_t size,
- uint32_t watch_flags, bool hardware) {
+Status NativeThreadNetBSD::SetWatchpoint(lldb::addr_t addr, size_t size,
+ uint32_t watch_flags, bool hardware) {
if (!hardware)
- return Error("not implemented");
+ return Status("not implemented");
if (m_state == eStateLaunching)
- return Error();
- Error error = RemoveWatchpoint(addr);
+ return Status();
+ Status error = RemoveWatchpoint(addr);
if (error.Fail())
return error;
NativeRegisterContextSP reg_ctx = GetRegisterContext();
uint32_t wp_index = reg_ctx->SetHardwareWatchpoint(addr, size, watch_flags);
if (wp_index == LLDB_INVALID_INDEX32)
- return Error("Setting hardware watchpoint failed.");
+ return Status("Setting hardware watchpoint failed.");
m_watchpoint_index_map.insert({addr, wp_index});
- return Error();
+ return Status();
}
-Error NativeThreadNetBSD::RemoveWatchpoint(lldb::addr_t addr) {
+Status NativeThreadNetBSD::RemoveWatchpoint(lldb::addr_t addr) {
auto wp = m_watchpoint_index_map.find(addr);
if (wp == m_watchpoint_index_map.end())
- return Error();
+ return Status();
uint32_t wp_index = wp->second;
m_watchpoint_index_map.erase(wp);
if (GetRegisterContext()->ClearHardwareWatchpoint(wp_index))
- return Error();
- return Error("Clearing hardware watchpoint failed.");
+ return Status();
+ return Status("Clearing hardware watchpoint failed.");
}
-Error NativeThreadNetBSD::SetHardwareBreakpoint(lldb::addr_t addr,
- size_t size) {
+Status NativeThreadNetBSD::SetHardwareBreakpoint(lldb::addr_t addr,
+ size_t size) {
if (m_state == eStateLaunching)
- return Error();
+ return Status();
- Error error = RemoveHardwareBreakpoint(addr);
+ Status error = RemoveHardwareBreakpoint(addr);
if (error.Fail())
return error;
@@ -201,22 +201,22 @@ Error NativeThreadNetBSD::SetHardwareBreakpoint(lldb::addr_t addr,
uint32_t bp_index = reg_ctx->SetHardwareBreakpoint(addr, size);
if (bp_index == LLDB_INVALID_INDEX32)
- return Error("Setting hardware breakpoint failed.");
+ return Status("Setting hardware breakpoint failed.");
m_hw_break_index_map.insert({addr, bp_index});
- return Error();
+ return Status();
}
-Error NativeThreadNetBSD::RemoveHardwareBreakpoint(lldb::addr_t addr) {
+Status NativeThreadNetBSD::RemoveHardwareBreakpoint(lldb::addr_t addr) {
auto bp = m_hw_break_index_map.find(addr);
if (bp == m_hw_break_index_map.end())
- return Error();
+ return Status();
uint32_t bp_index = bp->second;
if (GetRegisterContext()->ClearHardwareBreakpoint(bp_index)) {
m_hw_break_index_map.erase(bp);
- return Error();
+ return Status();
}
- return Error("Clearing hardware breakpoint failed.");
+ return Status("Clearing hardware breakpoint failed.");
}
diff --git a/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h b/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h
index 96d7fd0ce03b..dcd360cdd310 100644
--- a/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h
+++ b/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h
@@ -38,14 +38,14 @@ public:
NativeRegisterContextSP GetRegisterContext() override;
- Error SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
- bool hardware) override;
+ Status SetWatchpoint(lldb::addr_t addr, size_t size, uint32_t watch_flags,
+ bool hardware) override;
- Error RemoveWatchpoint(lldb::addr_t addr) override;
+ Status RemoveWatchpoint(lldb::addr_t addr) override;
- Error SetHardwareBreakpoint(lldb::addr_t addr, size_t size) override;
+ Status SetHardwareBreakpoint(lldb::addr_t addr, size_t size) override;
- Error RemoveHardwareBreakpoint(lldb::addr_t addr) override;
+ Status RemoveHardwareBreakpoint(lldb::addr_t addr) override;
private:
// ---------------------------------------------------------------------
diff --git a/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp b/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
index 5e933d3b3dee..0bd90dbf7620 100644
--- a/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
+++ b/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
@@ -48,10 +48,10 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
if (dict.GetValueForKeyAsArray("sets", sets)) {
const uint32_t num_sets = sets->GetSize();
for (uint32_t i = 0; i < num_sets; ++i) {
- std::string set_name_str;
+ llvm::StringRef set_name_str;
ConstString set_name;
if (sets->GetItemAtIndexAsString(i, set_name_str))
- set_name.SetCString(set_name_str.c_str());
+ set_name.SetString(set_name_str);
if (set_name) {
RegisterSet new_set = {set_name.AsCString(), NULL, 0, NULL};
m_sets.push_back(new_set);
@@ -115,7 +115,7 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
// expression
// we can calculate the offset
bool success = false;
- std::string slice_str;
+ llvm::StringRef slice_str;
if (reg_info_dict->GetValueForKeyAsString("slice", slice_str, nullptr)) {
// Slices use the following format:
// REGNAME[MSBIT:LSBIT]
@@ -131,9 +131,9 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
llvm::StringRef reg_name_str;
std::string msbit_str;
std::string lsbit_str;
- if (regex_match.GetMatchAtIndex(slice_str.c_str(), 1, reg_name_str) &&
- regex_match.GetMatchAtIndex(slice_str.c_str(), 2, msbit_str) &&
- regex_match.GetMatchAtIndex(slice_str.c_str(), 3, lsbit_str)) {
+ if (regex_match.GetMatchAtIndex(slice_str, 1, reg_name_str) &&
+ regex_match.GetMatchAtIndex(slice_str, 2, msbit_str) &&
+ regex_match.GetMatchAtIndex(slice_str, 3, lsbit_str)) {
const uint32_t msbit =
StringConvert::ToUInt32(msbit_str.c_str(), UINT32_MAX);
const uint32_t lsbit =
@@ -269,17 +269,15 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
reg_info.byte_size = bitsize / 8;
- std::string dwarf_opcode_string;
+ llvm::StringRef dwarf_opcode_string;
if (reg_info_dict->GetValueForKeyAsString("dynamic_size_dwarf_expr_bytes",
dwarf_opcode_string)) {
- reg_info.dynamic_size_dwarf_len = dwarf_opcode_string.length() / 2;
+ reg_info.dynamic_size_dwarf_len = dwarf_opcode_string.size() / 2;
assert(reg_info.dynamic_size_dwarf_len > 0);
std::vector<uint8_t> dwarf_opcode_bytes(reg_info.dynamic_size_dwarf_len);
uint32_t j;
- StringExtractor opcode_extractor;
- // Swap "dwarf_opcode_string" over into "opcode_extractor"
- opcode_extractor.GetStringRef().swap(dwarf_opcode_string);
+ StringExtractor opcode_extractor(dwarf_opcode_string);
uint32_t ret_val = opcode_extractor.GetHexBytesAvail(dwarf_opcode_bytes);
UNUSED_IF_ASSERT_DISABLED(ret_val);
assert(ret_val == reg_info.dynamic_size_dwarf_len);
@@ -290,9 +288,9 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
reg_info.dynamic_size_dwarf_expr_bytes = m_dynamic_reg_size_map[i].data();
}
- std::string format_str;
+ llvm::StringRef format_str;
if (reg_info_dict->GetValueForKeyAsString("format", format_str, nullptr)) {
- if (Args::StringToFormat(format_str.c_str(), reg_info.format, NULL)
+ if (Args::StringToFormat(format_str.str().c_str(), reg_info.format, NULL)
.Fail()) {
Clear();
printf("error: invalid 'format' value in register dictionary\n");
@@ -304,7 +302,7 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
eFormatHex);
}
- std::string encoding_str;
+ llvm::StringRef encoding_str;
if (reg_info_dict->GetValueForKeyAsString("encoding", encoding_str))
reg_info.encoding = Args::StringToEncoding(encoding_str, eEncodingUint);
else
@@ -334,7 +332,7 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
reg_info.kinds[lldb::eRegisterKindEHFrame] = eh_frame_regno;
reg_info_dict->GetValueForKeyAsInteger(
"dwarf", reg_info.kinds[lldb::eRegisterKindDWARF], LLDB_INVALID_REGNUM);
- std::string generic_str;
+ llvm::StringRef generic_str;
if (reg_info_dict->GetValueForKeyAsString("generic", generic_str))
reg_info.kinds[lldb::eRegisterKindGeneric] =
Args::StringToGenericRegister(generic_str);
diff --git a/source/Plugins/Process/Utility/RegisterContextLLDB.cpp b/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
index 485a39e6c9a5..312c1887b581 100644
--- a/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
+++ b/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
@@ -1055,7 +1055,7 @@ bool RegisterContextLLDB::ReadRegisterValueFromRegisterLocation(
case UnwindLLDB::RegisterLocation::eRegisterSavedAtHostMemoryLocation:
llvm_unreachable("FIXME debugger inferior function call unwind");
case UnwindLLDB::RegisterLocation::eRegisterSavedAtMemoryLocation: {
- Error error(ReadRegisterValueFromMemory(
+ Status error(ReadRegisterValueFromMemory(
reg_info, regloc.location.target_memory_location, reg_info->byte_size,
value));
success = error.Success();
@@ -1097,7 +1097,7 @@ bool RegisterContextLLDB::WriteRegisterValueToRegisterLocation(
case UnwindLLDB::RegisterLocation::eRegisterSavedAtHostMemoryLocation:
llvm_unreachable("FIXME debugger inferior function call unwind");
case UnwindLLDB::RegisterLocation::eRegisterSavedAtMemoryLocation: {
- Error error(WriteRegisterValueToMemory(
+ Status error(WriteRegisterValueToMemory(
reg_info, regloc.location.target_memory_location, reg_info->byte_size,
value));
success = error.Success();
@@ -1514,7 +1514,7 @@ RegisterContextLLDB::SavedLocationForRegister(
unwindplan_regloc.GetDWARFExpressionLength());
dwarfexpr.SetRegisterKind(unwindplan_registerkind);
Value result;
- Error error;
+ Status error;
if (dwarfexpr.Evaluate(&exe_ctx, nullptr, nullptr, this, 0, nullptr,
nullptr, result, &error)) {
addr_t val;
@@ -1769,7 +1769,7 @@ bool RegisterContextLLDB::ReadCFAValueForRow(
GetRegisterInfoAtIndex(cfa_reg.GetAsKind(eRegisterKindLLDB));
RegisterValue reg_value;
if (reg_info) {
- Error error = ReadRegisterValueFromMemory(
+ Status error = ReadRegisterValueFromMemory(
reg_info, cfa_reg_contents, reg_info->byte_size, reg_value);
if (error.Success()) {
cfa_value = reg_value.GetAsUInt64();
@@ -1824,7 +1824,7 @@ bool RegisterContextLLDB::ReadCFAValueForRow(
row->GetCFAValue().GetDWARFExpressionLength());
dwarfexpr.SetRegisterKind(row_register_kind);
Value result;
- Error error;
+ Status error;
if (dwarfexpr.Evaluate(&exe_ctx, nullptr, nullptr, this, 0, nullptr,
nullptr, result, &error)) {
cfa_value = result.GetScalar().ULongLong();
diff --git a/source/Plugins/Process/Utility/RegisterContextMemory.cpp b/source/Plugins/Process/Utility/RegisterContextMemory.cpp
index eed5eec8fae8..8f0dfd2a5b50 100644
--- a/source/Plugins/Process/Utility/RegisterContextMemory.cpp
+++ b/source/Plugins/Process/Utility/RegisterContextMemory.cpp
@@ -18,7 +18,7 @@
#include "lldb/Target/Process.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
using namespace lldb;
using namespace lldb_private;
@@ -101,8 +101,8 @@ bool RegisterContextMemory::WriteRegister(const RegisterInfo *reg_info,
if (m_reg_data_addr != LLDB_INVALID_ADDRESS) {
const uint32_t reg_num = reg_info->kinds[eRegisterKindLLDB];
addr_t reg_addr = m_reg_data_addr + reg_info->byte_offset;
- Error error(WriteRegisterValueToMemory(reg_info, reg_addr,
- reg_info->byte_size, reg_value));
+ Status error(WriteRegisterValueToMemory(reg_info, reg_addr,
+ reg_info->byte_size, reg_value));
m_reg_valid[reg_num] = false;
return error.Success();
}
@@ -113,7 +113,7 @@ bool RegisterContextMemory::ReadAllRegisterValues(DataBufferSP &data_sp) {
if (m_reg_data_addr != LLDB_INVALID_ADDRESS) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
if (process_sp->ReadMemory(m_reg_data_addr, data_sp->GetBytes(),
data_sp->GetByteSize(),
error) == data_sp->GetByteSize()) {
@@ -130,7 +130,7 @@ bool RegisterContextMemory::WriteAllRegisterValues(
if (m_reg_data_addr != LLDB_INVALID_ADDRESS) {
ProcessSP process_sp(CalculateProcess());
if (process_sp) {
- Error error;
+ Status error;
SetAllRegisterValid(false);
if (process_sp->WriteMemory(m_reg_data_addr, data_sp->GetBytes(),
data_sp->GetByteSize(),
diff --git a/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp b/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp
index 7d990e73b5be..96ad139f7364 100644
--- a/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp
+++ b/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp
@@ -10,7 +10,7 @@
#include "lldb/Target/OperatingSystem.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Thread.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-private.h"
#include "RegisterContextThreadMemory.h"
@@ -194,26 +194,26 @@ bool RegisterContextThreadMemory::HardwareSingleStep(bool enable) {
return false;
}
-Error RegisterContextThreadMemory::ReadRegisterValueFromMemory(
+Status RegisterContextThreadMemory::ReadRegisterValueFromMemory(
const lldb_private::RegisterInfo *reg_info, lldb::addr_t src_addr,
uint32_t src_len, RegisterValue &reg_value) {
UpdateRegisterContext();
if (m_reg_ctx_sp)
return m_reg_ctx_sp->ReadRegisterValueFromMemory(reg_info, src_addr,
src_len, reg_value);
- Error error;
+ Status error;
error.SetErrorString("invalid register context");
return error;
}
-Error RegisterContextThreadMemory::WriteRegisterValueToMemory(
+Status RegisterContextThreadMemory::WriteRegisterValueToMemory(
const lldb_private::RegisterInfo *reg_info, lldb::addr_t dst_addr,
uint32_t dst_len, const RegisterValue &reg_value) {
UpdateRegisterContext();
if (m_reg_ctx_sp)
return m_reg_ctx_sp->WriteRegisterValueToMemory(reg_info, dst_addr, dst_len,
reg_value);
- Error error;
+ Status error;
error.SetErrorString("invalid register context");
return error;
}
diff --git a/source/Plugins/Process/Utility/RegisterContextThreadMemory.h b/source/Plugins/Process/Utility/RegisterContextThreadMemory.h
index 7e0a2a9f7f1e..3b3b0856a4ca 100644
--- a/source/Plugins/Process/Utility/RegisterContextThreadMemory.h
+++ b/source/Plugins/Process/Utility/RegisterContextThreadMemory.h
@@ -80,13 +80,13 @@ public:
bool HardwareSingleStep(bool enable) override;
- Error ReadRegisterValueFromMemory(const lldb_private::RegisterInfo *reg_info,
- lldb::addr_t src_addr, uint32_t src_len,
- RegisterValue &reg_value) override;
+ Status ReadRegisterValueFromMemory(const lldb_private::RegisterInfo *reg_info,
+ lldb::addr_t src_addr, uint32_t src_len,
+ RegisterValue &reg_value) override;
- Error WriteRegisterValueToMemory(const lldb_private::RegisterInfo *reg_info,
- lldb::addr_t dst_addr, uint32_t dst_len,
- const RegisterValue &reg_value) override;
+ Status WriteRegisterValueToMemory(const lldb_private::RegisterInfo *reg_info,
+ lldb::addr_t dst_addr, uint32_t dst_len,
+ const RegisterValue &reg_value) override;
protected:
void UpdateRegisterContext();
diff --git a/source/Plugins/Process/Utility/ThreadMemory.cpp b/source/Plugins/Process/Utility/ThreadMemory.cpp
index b3cac1c854d1..5ff928c69e59 100644
--- a/source/Plugins/Process/Utility/ThreadMemory.cpp
+++ b/source/Plugins/Process/Utility/ThreadMemory.cpp
@@ -24,15 +24,11 @@ ThreadMemory::ThreadMemory(Process &process, tid_t tid,
: Thread(process, tid), m_backing_thread_sp(),
m_thread_info_valobj_sp(thread_info_valobj_sp), m_name(), m_queue() {}
-ThreadMemory::ThreadMemory(Process &process, lldb::tid_t tid, const char *name,
- const char *queue, lldb::addr_t register_data_addr)
+ThreadMemory::ThreadMemory(Process &process, lldb::tid_t tid,
+ llvm::StringRef name, llvm::StringRef queue,
+ lldb::addr_t register_data_addr)
: Thread(process, tid), m_backing_thread_sp(), m_thread_info_valobj_sp(),
- m_name(), m_queue(), m_register_data_addr(register_data_addr) {
- if (name)
- m_name = name;
- if (queue)
- m_queue = queue;
-}
+ m_name(name), m_queue(queue), m_register_data_addr(register_data_addr) {}
ThreadMemory::~ThreadMemory() { DestroyThread(); }
diff --git a/source/Plugins/Process/Utility/ThreadMemory.h b/source/Plugins/Process/Utility/ThreadMemory.h
index 095544d244ba..89229710da4d 100644
--- a/source/Plugins/Process/Utility/ThreadMemory.h
+++ b/source/Plugins/Process/Utility/ThreadMemory.h
@@ -24,7 +24,7 @@ public:
const lldb::ValueObjectSP &thread_info_valobj_sp);
ThreadMemory(lldb_private::Process &process, lldb::tid_t tid,
- const char *name, const char *queue,
+ llvm::StringRef name, llvm::StringRef queue,
lldb::addr_t register_data_addr);
~ThreadMemory() override;
diff --git a/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp b/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp
index e2691be603ec..f907735d8f58 100644
--- a/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp
+++ b/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp
@@ -105,7 +105,7 @@ size_t UnwindMacOSXFrameBackchain::GetStackFrameData_i386(
m_cursors.push_back(cursor);
const size_t k_frame_size = sizeof(frame);
- Error error;
+ Status error;
while (frame.fp != 0 && frame.pc != 0 && ((frame.fp & 7) == 0)) {
// Read both the FP and PC (8 bytes)
if (process->ReadMemory(frame.fp, &frame.fp, k_frame_size, error) !=
@@ -196,7 +196,7 @@ size_t UnwindMacOSXFrameBackchain::GetStackFrameData_x86_64(
Frame_x86_64 frame = {cursor.fp, cursor.pc};
m_cursors.push_back(cursor);
- Error error;
+ Status error;
const size_t k_frame_size = sizeof(frame);
while (frame.fp != 0 && frame.pc != 0 && ((frame.fp & 7) == 0)) {
// Read both the FP and PC (16 bytes)
diff --git a/source/Plugins/Process/Windows/Common/DebuggerThread.cpp b/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
index b79359ba9667..ac9e65c3c108 100644
--- a/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
+++ b/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
@@ -19,9 +19,9 @@
#include "lldb/Host/windows/ProcessLauncherWindows.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/ProcessLaunchInfo.h"
-#include "lldb/Utility/Error.h"
#include "lldb/Utility/FileSpec.h"
#include "lldb/Utility/Log.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/Process/Windows/Common/ProcessWindowsLog.h"
@@ -60,11 +60,11 @@ DebuggerThread::DebuggerThread(DebugDelegateSP debug_delegate)
DebuggerThread::~DebuggerThread() { ::CloseHandle(m_debugging_ended_event); }
-Error DebuggerThread::DebugLaunch(const ProcessLaunchInfo &launch_info) {
+Status DebuggerThread::DebugLaunch(const ProcessLaunchInfo &launch_info) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
LLDB_LOG(log, "launching '{0}'", launch_info.GetExecutableFile().GetPath());
- Error error;
+ Status error;
DebugLaunchContext *context = new DebugLaunchContext(this, launch_info);
HostThread slave_thread(ThreadLauncher::LaunchThread(
"lldb.plugin.process-windows.slave[?]", DebuggerThreadLaunchRoutine,
@@ -76,12 +76,12 @@ Error DebuggerThread::DebugLaunch(const ProcessLaunchInfo &launch_info) {
return error;
}
-Error DebuggerThread::DebugAttach(lldb::pid_t pid,
- const ProcessAttachInfo &attach_info) {
+Status DebuggerThread::DebugAttach(lldb::pid_t pid,
+ const ProcessAttachInfo &attach_info) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
LLDB_LOG(log, "attaching to '{0}'", pid);
- Error error;
+ Status error;
DebugAttachContext *context = new DebugAttachContext(this, pid, attach_info);
HostThread slave_thread(ThreadLauncher::LaunchThread(
"lldb.plugin.process-windows.slave[?]", DebuggerThreadAttachRoutine,
@@ -120,7 +120,7 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadLaunchRoutine(
LLDB_LOG(log, "preparing to launch '{0}' on background thread.",
launch_info.GetExecutableFile().GetPath());
- Error error;
+ Status error;
ProcessLauncherWindows launcher;
HostProcess process(launcher.LaunchProcess(launch_info, error));
// If we couldn't create the process, notify waiters immediately. Otherwise
@@ -152,7 +152,7 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadAttachRoutine(
pid);
if (!DebugActiveProcess((DWORD)pid)) {
- Error error(::GetLastError(), eErrorTypeWin32);
+ Status error(::GetLastError(), eErrorTypeWin32);
m_debug_delegate->OnDebuggerError(error, 0);
return 0;
}
@@ -167,8 +167,8 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadAttachRoutine(
return 0;
}
-Error DebuggerThread::StopDebugging(bool terminate) {
- Error error;
+Status DebuggerThread::StopDebugging(bool terminate) {
+ Status error;
lldb::pid_t pid = m_process.GetProcessId();
@@ -515,7 +515,7 @@ DebuggerThread::HandleRipEvent(const RIP_INFO &info, DWORD thread_id) {
LLDB_LOG(log, "encountered error {0} (type={1}) in process {2} thread {3}",
info.dwError, info.dwType, m_process.GetProcessId(), thread_id);
- Error error(info.dwError, eErrorTypeWin32);
+ Status error(info.dwError, eErrorTypeWin32);
m_debug_delegate->OnDebuggerError(error, info.dwType);
return DBG_CONTINUE;
diff --git a/source/Plugins/Process/Windows/Common/DebuggerThread.h b/source/Plugins/Process/Windows/Common/DebuggerThread.h
index ef4b47bab8c7..fcf36f7dec9b 100644
--- a/source/Plugins/Process/Windows/Common/DebuggerThread.h
+++ b/source/Plugins/Process/Windows/Common/DebuggerThread.h
@@ -32,8 +32,8 @@ public:
DebuggerThread(DebugDelegateSP debug_delegate);
virtual ~DebuggerThread();
- Error DebugLaunch(const ProcessLaunchInfo &launch_info);
- Error DebugAttach(lldb::pid_t pid, const ProcessAttachInfo &attach_info);
+ Status DebugLaunch(const ProcessLaunchInfo &launch_info);
+ Status DebugAttach(lldb::pid_t pid, const ProcessAttachInfo &attach_info);
HostProcess GetProcess() const { return m_process; }
HostThread GetMainThread() const { return m_main_thread; }
@@ -41,7 +41,7 @@ public:
return m_active_exception;
}
- Error StopDebugging(bool terminate);
+ Status StopDebugging(bool terminate);
void ContinueAsyncException(ExceptionResult result);
diff --git a/source/Plugins/Process/Windows/Common/IDebugDelegate.h b/source/Plugins/Process/Windows/Common/IDebugDelegate.h
index e88e0ada053b..73c285f1ecc7 100644
--- a/source/Plugins/Process/Windows/Common/IDebugDelegate.h
+++ b/source/Plugins/Process/Windows/Common/IDebugDelegate.h
@@ -16,7 +16,7 @@
#include <string>
namespace lldb_private {
-class Error;
+class Status;
class HostThread;
//----------------------------------------------------------------------
@@ -39,7 +39,7 @@ public:
lldb::addr_t module_addr) = 0;
virtual void OnUnloadDll(lldb::addr_t module_addr) = 0;
virtual void OnDebugString(const std::string &string) = 0;
- virtual void OnDebuggerError(const Error &error, uint32_t type) = 0;
+ virtual void OnDebuggerError(const Status &error, uint32_t type) = 0;
};
}
diff --git a/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp b/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp
index 600aef372505..92aa7e2678b9 100644
--- a/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp
+++ b/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp
@@ -62,7 +62,7 @@ void LocalDebugDelegate::OnDebugString(const std::string &string) {
process->OnDebugString(string);
}
-void LocalDebugDelegate::OnDebuggerError(const Error &error, uint32_t type) {
+void LocalDebugDelegate::OnDebuggerError(const Status &error, uint32_t type) {
if (ProcessWindowsSP process = GetProcessPointer())
process->OnDebuggerError(error, type);
}
diff --git a/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h b/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h
index 819854a1e631..2cb479ccce8a 100644
--- a/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h
+++ b/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h
@@ -55,7 +55,7 @@ public:
lldb::addr_t module_addr) override;
void OnUnloadDll(lldb::addr_t module_addr) override;
void OnDebugString(const std::string &message) override;
- void OnDebuggerError(const Error &error, uint32_t type) override;
+ void OnDebuggerError(const Status &error, uint32_t type) override;
private:
ProcessWindowsSP GetProcessPointer();
diff --git a/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index 56a98a8eef63..a1c9cfaed41c 100644
--- a/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -87,7 +87,7 @@ public:
~ProcessWindowsData() { ::CloseHandle(m_initial_stop_event); }
- Error m_launch_error;
+ Status m_launch_error;
DebuggerThreadSP m_debugger;
StopInfoSP m_pending_stop_info;
HANDLE m_initial_stop_event = nullptr;
@@ -132,18 +132,18 @@ ProcessWindows::ProcessWindows(lldb::TargetSP target_sp,
ProcessWindows::~ProcessWindows() {}
-size_t ProcessWindows::GetSTDOUT(char *buf, size_t buf_size, Error &error) {
+size_t ProcessWindows::GetSTDOUT(char *buf, size_t buf_size, Status &error) {
error.SetErrorString("GetSTDOUT unsupported on Windows");
return 0;
}
-size_t ProcessWindows::GetSTDERR(char *buf, size_t buf_size, Error &error) {
+size_t ProcessWindows::GetSTDERR(char *buf, size_t buf_size, Status &error) {
error.SetErrorString("GetSTDERR unsupported on Windows");
return 0;
}
size_t ProcessWindows::PutSTDIN(const char *buf, size_t buf_size,
- Error &error) {
+ Status &error) {
error.SetErrorString("PutSTDIN unsupported on Windows");
return 0;
}
@@ -157,30 +157,30 @@ lldb_private::ConstString ProcessWindows::GetPluginName() {
uint32_t ProcessWindows::GetPluginVersion() { return 1; }
-Error ProcessWindows::EnableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessWindows::EnableBreakpointSite(BreakpointSite *bp_site) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_BREAKPOINTS);
LLDB_LOG(log, "bp_site = {0:x}, id={1}, addr={2:x}", bp_site,
bp_site->GetID(), bp_site->GetLoadAddress());
- Error error = EnableSoftwareBreakpoint(bp_site);
+ Status error = EnableSoftwareBreakpoint(bp_site);
if (!error.Success())
LLDB_LOG(log, "error: {0}", error);
return error;
}
-Error ProcessWindows::DisableBreakpointSite(BreakpointSite *bp_site) {
+Status ProcessWindows::DisableBreakpointSite(BreakpointSite *bp_site) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_BREAKPOINTS);
LLDB_LOG(log, "bp_site = {0:x}, id={1}, addr={2:x}", bp_site,
bp_site->GetID(), bp_site->GetLoadAddress());
- Error error = DisableSoftwareBreakpoint(bp_site);
+ Status error = DisableSoftwareBreakpoint(bp_site);
if (!error.Success())
LLDB_LOG(log, "error: {0}", error);
return error;
}
-Error ProcessWindows::DoDetach(bool keep_stopped) {
+Status ProcessWindows::DoDetach(bool keep_stopped) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
DebuggerThreadSP debugger_thread;
StateType private_state;
@@ -196,13 +196,13 @@ Error ProcessWindows::DoDetach(bool keep_stopped) {
if (!m_session_data) {
LLDB_LOG(log, "state = {0}, but there is no active session.",
private_state);
- return Error();
+ return Status();
}
debugger_thread = m_session_data->m_debugger;
}
- Error error;
+ Status error;
if (private_state != eStateExited && private_state != eStateDetached) {
LLDB_LOG(log, "detaching from process {0} while state = {1}.",
debugger_thread->GetProcess().GetNativeProcess().GetSystemHandle(),
@@ -226,8 +226,8 @@ Error ProcessWindows::DoDetach(bool keep_stopped) {
return error;
}
-Error ProcessWindows::DoLaunch(Module *exe_module,
- ProcessLaunchInfo &launch_info) {
+Status ProcessWindows::DoLaunch(Module *exe_module,
+ ProcessLaunchInfo &launch_info) {
// Even though m_session_data is accessed here, it is before a debugger thread
// has been
// kicked off. So there's no race conditions, and it shouldn't be necessary
@@ -235,7 +235,7 @@ Error ProcessWindows::DoLaunch(Module *exe_module,
// the mutex.
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
- Error result;
+ Status result;
if (!launch_info.GetFlags().Test(eLaunchFlagDebug)) {
StreamString stream;
stream.Printf("ProcessWindows unable to launch '%s'. ProcessWindows can "
@@ -265,7 +265,7 @@ Error ProcessWindows::DoLaunch(Module *exe_module,
}
HostProcess process;
- Error error = WaitForDebuggerConnection(debugger, process);
+ Status error = WaitForDebuggerConnection(debugger, process);
if (error.Fail()) {
LLDB_LOG(log, "failed launching '{0}'. {1}",
launch_info.GetExecutableFile().GetPath(), error);
@@ -288,8 +288,9 @@ Error ProcessWindows::DoLaunch(Module *exe_module,
return result;
}
-Error ProcessWindows::DoAttachToProcessWithID(
- lldb::pid_t pid, const ProcessAttachInfo &attach_info) {
+Status
+ProcessWindows::DoAttachToProcessWithID(lldb::pid_t pid,
+ const ProcessAttachInfo &attach_info) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
m_session_data.reset(
new ProcessWindowsData(!attach_info.GetContinueOnceAttached()));
@@ -300,7 +301,7 @@ Error ProcessWindows::DoAttachToProcessWithID(
m_session_data->m_debugger = debugger;
DWORD process_id = static_cast<DWORD>(pid);
- Error error = debugger->DebugAttach(process_id, attach_info);
+ Status error = debugger->DebugAttach(process_id, attach_info);
if (error.Fail()) {
LLDB_LOG(
log,
@@ -331,10 +332,10 @@ Error ProcessWindows::DoAttachToProcessWithID(
return error;
}
-Error ProcessWindows::DoResume() {
+Status ProcessWindows::DoResume() {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
llvm::sys::ScopedLock lock(m_mutex);
- Error error;
+ Status error;
StateType private_state = GetPrivateState();
if (private_state == eStateStopped || private_state == eStateCrashed) {
@@ -369,7 +370,7 @@ Error ProcessWindows::DoResume() {
return error;
}
-Error ProcessWindows::DoDestroy() {
+Status ProcessWindows::DoDestroy() {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
DebuggerThreadSP debugger_thread;
StateType private_state;
@@ -386,13 +387,13 @@ Error ProcessWindows::DoDestroy() {
if (!m_session_data) {
LLDB_LOG(log, "warning: state = {0}, but there is no active session.",
private_state);
- return Error();
+ return Status();
}
debugger_thread = m_session_data->m_debugger;
}
- Error error;
+ Status error;
if (private_state != eStateExited && private_state != eStateDetached) {
LLDB_LOG(log, "Shutting down process {0} while state = {1}.",
debugger_thread->GetProcess().GetNativeProcess().GetSystemHandle(),
@@ -411,9 +412,9 @@ Error ProcessWindows::DoDestroy() {
return error;
}
-Error ProcessWindows::DoHalt(bool &caused_stop) {
+Status ProcessWindows::DoHalt(bool &caused_stop) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
- Error error;
+ Status error;
StateType state = GetPrivateState();
if (state == eStateStopped)
caused_stop = false;
@@ -623,7 +624,7 @@ bool ProcessWindows::IsAlive() {
}
size_t ProcessWindows::DoReadMemory(lldb::addr_t vm_addr, void *buf,
- size_t size, Error &error) {
+ size_t size, Status &error) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_MEMORY);
llvm::sys::ScopedLock lock(m_mutex);
@@ -645,7 +646,7 @@ size_t ProcessWindows::DoReadMemory(lldb::addr_t vm_addr, void *buf,
}
size_t ProcessWindows::DoWriteMemory(lldb::addr_t vm_addr, const void *buf,
- size_t size, Error &error) {
+ size_t size, Status &error) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_MEMORY);
llvm::sys::ScopedLock lock(m_mutex);
LLDB_LOG(log, "attempting to write {0} bytes into address {1:x}", size,
@@ -669,10 +670,10 @@ size_t ProcessWindows::DoWriteMemory(lldb::addr_t vm_addr, const void *buf,
return bytes_written;
}
-Error ProcessWindows::GetMemoryRegionInfo(lldb::addr_t vm_addr,
- MemoryRegionInfo &info) {
+Status ProcessWindows::GetMemoryRegionInfo(lldb::addr_t vm_addr,
+ MemoryRegionInfo &info) {
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_MEMORY);
- Error error;
+ Status error;
llvm::sys::ScopedLock lock(m_mutex);
info.Clear();
@@ -807,7 +808,7 @@ void ProcessWindows::OnDebuggerConnected(lldb::addr_t image_base) {
FileSpec executable_file(file_name, true);
ModuleSpec module_spec(executable_file);
- Error error;
+ Status error;
module = GetTarget().GetSharedModule(module_spec, &error);
if (!module) {
return;
@@ -931,7 +932,7 @@ void ProcessWindows::OnLoadDll(const ModuleSpec &module_spec,
// GetSharedModule() with
// a new module will add it to the module list and return a corresponding
// ModuleSP.
- Error error;
+ Status error;
ModuleSP module = GetTarget().GetSharedModule(module_spec, &error);
bool load_addr_changed = false;
module->SetLoadAddress(GetTarget(), module_addr, false, load_addr_changed);
@@ -955,7 +956,7 @@ void ProcessWindows::OnUnloadDll(lldb::addr_t module_addr) {
void ProcessWindows::OnDebugString(const std::string &string) {}
-void ProcessWindows::OnDebuggerError(const Error &error, uint32_t type) {
+void ProcessWindows::OnDebuggerError(const Status &error, uint32_t type) {
llvm::sys::ScopedLock lock(m_mutex);
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS);
@@ -981,9 +982,9 @@ void ProcessWindows::OnDebuggerError(const Error &error, uint32_t type) {
}
}
-Error ProcessWindows::WaitForDebuggerConnection(DebuggerThreadSP debugger,
- HostProcess &process) {
- Error result;
+Status ProcessWindows::WaitForDebuggerConnection(DebuggerThreadSP debugger,
+ HostProcess &process) {
+ Status result;
Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS |
WINDOWS_LOG_BREAKPOINTS);
LLDB_LOG(log, "Waiting for loader breakpoint.");
@@ -996,7 +997,7 @@ Error ProcessWindows::WaitForDebuggerConnection(DebuggerThreadSP debugger,
process = debugger->GetProcess();
return m_session_data->m_launch_error;
} else
- return Error(::GetLastError(), eErrorTypeWin32);
+ return Status(::GetLastError(), eErrorTypeWin32);
}
// The Windows page protection bits are NOT independent masks that can be
diff --git a/source/Plugins/Process/Windows/Common/ProcessWindows.h b/source/Plugins/Process/Windows/Common/ProcessWindows.h
index f2db102299ae..ed3938beb347 100644
--- a/source/Plugins/Process/Windows/Common/ProcessWindows.h
+++ b/source/Plugins/Process/Windows/Common/ProcessWindows.h
@@ -12,7 +12,7 @@
// Other libraries and framework includes
#include "lldb/Target/Process.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-forward.h"
#include "llvm/Support/Mutex.h"
@@ -48,25 +48,25 @@ public:
~ProcessWindows();
- size_t GetSTDOUT(char *buf, size_t buf_size, Error &error) override;
- size_t GetSTDERR(char *buf, size_t buf_size, Error &error) override;
- size_t PutSTDIN(const char *buf, size_t buf_size, Error &error) override;
+ size_t GetSTDOUT(char *buf, size_t buf_size, Status &error) override;
+ size_t GetSTDERR(char *buf, size_t buf_size, Status &error) override;
+ size_t PutSTDIN(const char *buf, size_t buf_size, Status &error) override;
// lldb_private::Process overrides
ConstString GetPluginName() override;
uint32_t GetPluginVersion() override;
- Error EnableBreakpointSite(BreakpointSite *bp_site) override;
- Error DisableBreakpointSite(BreakpointSite *bp_site) override;
+ Status EnableBreakpointSite(BreakpointSite *bp_site) override;
+ Status DisableBreakpointSite(BreakpointSite *bp_site) override;
- Error DoDetach(bool keep_stopped) override;
- Error DoLaunch(Module *exe_module, ProcessLaunchInfo &launch_info) override;
- Error DoAttachToProcessWithID(
+ Status DoDetach(bool keep_stopped) override;
+ Status DoLaunch(Module *exe_module, ProcessLaunchInfo &launch_info) override;
+ Status DoAttachToProcessWithID(
lldb::pid_t pid,
const lldb_private::ProcessAttachInfo &attach_info) override;
- Error DoResume() override;
- Error DoDestroy() override;
- Error DoHalt(bool &caused_stop) override;
+ Status DoResume() override;
+ Status DoDestroy() override;
+ Status DoHalt(bool &caused_stop) override;
void DidLaunch() override;
void DidAttach(lldb_private::ArchSpec &arch_spec) override;
@@ -81,11 +81,11 @@ public:
bool IsAlive() override;
size_t DoReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
- Error &error) override;
+ Status &error) override;
size_t DoWriteMemory(lldb::addr_t vm_addr, const void *buf, size_t size,
- Error &error) override;
- Error GetMemoryRegionInfo(lldb::addr_t vm_addr,
- MemoryRegionInfo &info) override;
+ Status &error) override;
+ Status GetMemoryRegionInfo(lldb::addr_t vm_addr,
+ MemoryRegionInfo &info) override;
lldb::addr_t GetImageInfoAddress() override;
@@ -100,11 +100,11 @@ public:
lldb::addr_t module_addr) override;
void OnUnloadDll(lldb::addr_t module_addr) override;
void OnDebugString(const std::string &string) override;
- void OnDebuggerError(const Error &error, uint32_t type) override;
+ void OnDebuggerError(const Status &error, uint32_t type) override;
private:
- Error WaitForDebuggerConnection(DebuggerThreadSP debugger,
- HostProcess &process);
+ Status WaitForDebuggerConnection(DebuggerThreadSP debugger,
+ HostProcess &process);
// These decode the page protection bits.
static bool IsPageReadable(uint32_t protect);
diff --git a/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp b/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
index bfed3044910d..b3f507128f82 100644
--- a/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
+++ b/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
@@ -10,7 +10,7 @@
#include "lldb/Host/windows/HostThreadWindows.h"
#include "lldb/Host/windows/windows.h"
#include "lldb/Utility/DataBufferHeap.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-private-types.h"
#include "ProcessWindowsLog.h"
diff --git a/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp b/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
index 53fe1d902494..e64bade5ff90 100644
--- a/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
+++ b/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
@@ -10,7 +10,7 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/windows/HostThreadWindows.h"
#include "lldb/Host/windows/windows.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-private-types.h"
#include "RegisterContextWindows_x64.h"
diff --git a/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp b/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
index 8127606583cd..f56836de4a67 100644
--- a/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
+++ b/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
@@ -10,7 +10,7 @@
#include "lldb/Core/RegisterValue.h"
#include "lldb/Host/windows/HostThreadWindows.h"
#include "lldb/Host/windows/windows.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/lldb-private-types.h"
#include "ProcessWindowsLog.h"
diff --git a/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index 6561d2a05828..5a459e80348b 100644
--- a/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -84,8 +84,8 @@ bool ProcessElfCore::CanDebug(lldb::TargetSP target_sp,
// For now we are just making sure the file exists for a given module
if (!m_core_module_sp && m_core_file.Exists()) {
ModuleSpec core_module_spec(m_core_file, target_sp->GetArchitecture());
- Error error(ModuleList::GetSharedModule(core_module_spec, m_core_module_sp,
- NULL, NULL, NULL));
+ Status error(ModuleList::GetSharedModule(core_module_spec, m_core_module_sp,
+ NULL, NULL, NULL));
if (m_core_module_sp) {
ObjectFile *core_objfile = m_core_module_sp->GetObjectFile();
if (core_objfile && core_objfile->GetType() == ObjectFile::eTypeCoreFile)
@@ -157,8 +157,8 @@ lldb::addr_t ProcessElfCore::AddAddressRangeFromLoadSegment(
//----------------------------------------------------------------------
// Process Control
//----------------------------------------------------------------------
-Error ProcessElfCore::DoLoadCore() {
- Error error;
+Status ProcessElfCore::DoLoadCore() {
+ Status error;
if (!m_core_module_sp) {
error.SetErrorString("invalid core module");
return error;
@@ -289,7 +289,7 @@ bool ProcessElfCore::UpdateThreadList(ThreadList &old_thread_list,
void ProcessElfCore::RefreshStateAfterStop() {}
-Error ProcessElfCore::DoDestroy() { return Error(); }
+Status ProcessElfCore::DoDestroy() { return Status(); }
//------------------------------------------------------------------
// Process Queries
@@ -301,14 +301,14 @@ bool ProcessElfCore::IsAlive() { return true; }
// Process Memory
//------------------------------------------------------------------
size_t ProcessElfCore::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
// Don't allow the caching that lldb_private::Process::ReadMemory does
// since in core files we have it all cached our our core file anyway.
return DoReadMemory(addr, buf, size, error);
}
-Error ProcessElfCore::GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &region_info) {
+Status ProcessElfCore::GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &region_info) {
region_info.Clear();
const VMRangeToPermissions::Entry *permission_entry =
m_core_range_infos.FindEntryThatContainsOrFollows(load_addr);
@@ -335,7 +335,7 @@ Error ProcessElfCore::GetMemoryRegionInfo(lldb::addr_t load_addr,
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
}
- return Error();
+ return Status();
}
region_info.GetRange().SetRangeBase(load_addr);
@@ -344,11 +344,11 @@ Error ProcessElfCore::GetMemoryRegionInfo(lldb::addr_t load_addr,
region_info.SetWritable(MemoryRegionInfo::eNo);
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
- return Error();
+ return Status();
}
size_t ProcessElfCore::DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
ObjectFile *core_objfile = m_core_module_sp->GetObjectFile();
if (core_objfile == NULL)
@@ -540,7 +540,7 @@ static void ParseOpenBSDProcInfo(ThreadData &thread_data, DataExtractor &data) {
/// new thread when it finds NT_PRSTATUS or NT_PRPSINFO NOTE entry.
/// For case (b) there may be either one NT_PRPSINFO per thread, or a single
/// one that applies to all threads (depending on the platform type).
-Error ProcessElfCore::ParseThreadContextsFromNoteSegment(
+Status ProcessElfCore::ParseThreadContextsFromNoteSegment(
const elf::ELFProgramHeader *segment_header, DataExtractor segment_data) {
assert(segment_header && segment_header->p_type == llvm::ELF::PT_NOTE);
@@ -555,7 +555,7 @@ Error ProcessElfCore::ParseThreadContextsFromNoteSegment(
ELFLinuxSigInfo siginfo;
size_t header_size;
size_t len;
- Error error;
+ Status error;
// Loop through the NOTE entires in the segment
while (offset < segment_header->p_filesz) {
diff --git a/source/Plugins/Process/elf-core/ProcessElfCore.h b/source/Plugins/Process/elf-core/ProcessElfCore.h
index cb2f31bde4c5..dbf7f926f855 100644
--- a/source/Plugins/Process/elf-core/ProcessElfCore.h
+++ b/source/Plugins/Process/elf-core/ProcessElfCore.h
@@ -26,7 +26,7 @@
// Project includes
#include "lldb/Target/Process.h"
#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "Plugins/ObjectFile/ELF/ELFHeader.h"
@@ -66,7 +66,7 @@ public:
//------------------------------------------------------------------
// Creating a new process, or attaching to an existing one
//------------------------------------------------------------------
- lldb_private::Error DoLoadCore() override;
+ lldb_private::Status DoLoadCore() override;
lldb_private::DynamicLoader *GetDynamicLoader() override;
@@ -80,7 +80,7 @@ public:
//------------------------------------------------------------------
// Process Control
//------------------------------------------------------------------
- lldb_private::Error DoDestroy() override;
+ lldb_private::Status DoDestroy() override;
void RefreshStateAfterStop() override;
@@ -93,12 +93,12 @@ public:
// Process Memory
//------------------------------------------------------------------
size_t ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
- lldb_private::Error
+ lldb_private::Status
GetMemoryRegionInfo(lldb::addr_t load_addr,
lldb_private::MemoryRegionInfo &region_info) override;
@@ -160,7 +160,7 @@ private:
std::vector<NT_FILE_Entry> m_nt_file_entries;
// Parse thread(s) data structures(prstatus, prpsinfo) from given NOTE segment
- lldb_private::Error ParseThreadContextsFromNoteSegment(
+ lldb_private::Status ParseThreadContextsFromNoteSegment(
const elf::ELFProgramHeader *segment_header,
lldb_private::DataExtractor segment_data);
diff --git a/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp b/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
index 260ae15d7a54..5766923186d1 100644
--- a/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
+++ b/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
@@ -71,7 +71,7 @@ bool RegisterContextCorePOSIX_x86_64::ReadRegister(const RegisterInfo *reg_info,
return false;
}
- Error error;
+ Status error;
value.SetFromMemoryData(reg_info, src + offset, reg_info->byte_size,
lldb::eByteOrderLittle, error);
diff --git a/source/Plugins/Process/elf-core/ThreadElfCore.cpp b/source/Plugins/Process/elf-core/ThreadElfCore.cpp
index 13ad82d92c5d..096c20363c78 100644
--- a/source/Plugins/Process/elf-core/ThreadElfCore.cpp
+++ b/source/Plugins/Process/elf-core/ThreadElfCore.cpp
@@ -274,8 +274,8 @@ size_t ELFLinuxPrStatus::GetSize(lldb_private::ArchSpec &arch) {
}
}
-Error ELFLinuxPrStatus::Parse(DataExtractor &data, ArchSpec &arch) {
- Error error;
+Status ELFLinuxPrStatus::Parse(DataExtractor &data, ArchSpec &arch) {
+ Status error;
if (GetSize(arch) > data.GetByteSize()) {
error.SetErrorStringWithFormat(
"NT_PRSTATUS size should be %zu, but the remaining bytes are: %" PRIu64,
@@ -344,8 +344,8 @@ size_t ELFLinuxPrPsInfo::GetSize(lldb_private::ArchSpec &arch) {
}
}
-Error ELFLinuxPrPsInfo::Parse(DataExtractor &data, ArchSpec &arch) {
- Error error;
+Status ELFLinuxPrPsInfo::Parse(DataExtractor &data, ArchSpec &arch) {
+ Status error;
ByteOrder byteorder = data.GetByteOrder();
if (GetSize(arch) > data.GetByteSize()) {
error.SetErrorStringWithFormat(
@@ -413,8 +413,8 @@ size_t ELFLinuxSigInfo::GetSize(const lldb_private::ArchSpec &arch) {
}
}
-Error ELFLinuxSigInfo::Parse(DataExtractor &data, const ArchSpec &arch) {
- Error error;
+Status ELFLinuxSigInfo::Parse(DataExtractor &data, const ArchSpec &arch) {
+ Status error;
if (GetSize(arch) > data.GetByteSize()) {
error.SetErrorStringWithFormat(
"NT_SIGINFO size should be %zu, but the remaining bytes are: %" PRIu64,
diff --git a/source/Plugins/Process/elf-core/ThreadElfCore.h b/source/Plugins/Process/elf-core/ThreadElfCore.h
index 38c52658a23a..521875413715 100644
--- a/source/Plugins/Process/elf-core/ThreadElfCore.h
+++ b/source/Plugins/Process/elf-core/ThreadElfCore.h
@@ -57,8 +57,8 @@ struct ELFLinuxPrStatus {
ELFLinuxPrStatus();
- lldb_private::Error Parse(lldb_private::DataExtractor &data,
- lldb_private::ArchSpec &arch);
+ lldb_private::Status Parse(lldb_private::DataExtractor &data,
+ lldb_private::ArchSpec &arch);
// Return the bytesize of the structure
// 64 bit - just sizeof
@@ -78,8 +78,8 @@ struct ELFLinuxSigInfo {
ELFLinuxSigInfo();
- lldb_private::Error Parse(lldb_private::DataExtractor &data,
- const lldb_private::ArchSpec &arch);
+ lldb_private::Status Parse(lldb_private::DataExtractor &data,
+ const lldb_private::ArchSpec &arch);
// Return the bytesize of the structure
// 64 bit - just sizeof
@@ -113,8 +113,8 @@ struct ELFLinuxPrPsInfo {
ELFLinuxPrPsInfo();
- lldb_private::Error Parse(lldb_private::DataExtractor &data,
- lldb_private::ArchSpec &arch);
+ lldb_private::Status Parse(lldb_private::DataExtractor &data,
+ lldb_private::ArchSpec &arch);
// Return the bytesize of the structure
// 64 bit - just sizeof
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
index d527b4daaab9..0c4df7e3f306 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
@@ -319,7 +319,7 @@ GDBRemoteCommunication::WaitForPacketNoLock(StringExtractorGDBRemote &packet,
Timeout<std::micro> timeout,
bool sync_on_timeout) {
uint8_t buffer[8192];
- Error error;
+ Status error;
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PACKETS));
@@ -933,9 +933,9 @@ GDBRemoteCommunication::CheckForPacket(const uint8_t *src, size_t src_len,
return GDBRemoteCommunication::PacketType::Invalid;
}
-Error GDBRemoteCommunication::StartListenThread(const char *hostname,
- uint16_t port) {
- Error error;
+Status GDBRemoteCommunication::StartListenThread(const char *hostname,
+ uint16_t port) {
+ Status error;
if (m_listen_thread.IsJoinable()) {
error.SetErrorString("listen thread already running");
} else {
@@ -962,7 +962,7 @@ bool GDBRemoteCommunication::JoinListenThread() {
lldb::thread_result_t
GDBRemoteCommunication::ListenThread(lldb::thread_arg_t arg) {
GDBRemoteCommunication *comm = (GDBRemoteCommunication *)arg;
- Error error;
+ Status error;
ConnectionFileDescriptor *connection =
(ConnectionFileDescriptor *)comm->GetConnection();
@@ -975,7 +975,7 @@ GDBRemoteCommunication::ListenThread(lldb::thread_arg_t arg) {
return NULL;
}
-Error GDBRemoteCommunication::StartDebugserverProcess(
+Status GDBRemoteCommunication::StartDebugserverProcess(
const char *url, Platform *platform, ProcessLaunchInfo &launch_info,
uint16_t *port, const Args *inferior_args, int pass_comm_fd) {
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
@@ -984,7 +984,7 @@ Error GDBRemoteCommunication::StartDebugserverProcess(
__FUNCTION__, url ? url : "<empty>",
port ? *port : uint16_t(0));
- Error error;
+ Status error;
// If we locate debugserver, keep that located version around
static FileSpec g_debugserver_file_spec;
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
index b49e05e22d95..ce90de3e8470 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
@@ -65,9 +65,9 @@ public:
enum class PacketResult {
Success = 0, // Success
- ErrorSendFailed, // Error sending the packet
+ ErrorSendFailed, // Status sending the packet
ErrorSendAck, // Didn't get an ack back after sending a packet
- ErrorReplyFailed, // Error getting the reply
+ ErrorReplyFailed, // Status getting the reply
ErrorReplyTimeout, // Timed out waiting for reply
ErrorReplyInvalid, // Got a reply but it wasn't valid for the packet that
// was sent
@@ -131,7 +131,7 @@ public:
// Start a debugserver instance on the current host using the
// supplied connection URL.
//------------------------------------------------------------------
- Error StartDebugserverProcess(
+ Status StartDebugserverProcess(
const char *url,
Platform *platform, // If non nullptr, then check with the platform for
// the GDB server binary if it can't be located
@@ -255,8 +255,8 @@ protected:
// on m_bytes. The checksum was for the compressed packet.
bool DecompressPacket();
- Error StartListenThread(const char *hostname = "127.0.0.1",
- uint16_t port = 0);
+ Status StartListenThread(const char *hostname = "127.0.0.1",
+ uint16_t port = 0);
bool JoinListenThread();
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index 2e94fa94331d..550ec0ea499a 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -113,7 +113,7 @@ GDBRemoteCommunicationClient::~GDBRemoteCommunicationClient() {
Disconnect();
}
-bool GDBRemoteCommunicationClient::HandshakeWithServer(Error *error_ptr) {
+bool GDBRemoteCommunicationClient::HandshakeWithServer(Status *error_ptr) {
ResetDiscoverableSettings(false);
// Start the read thread after we send the handshake ack since if we
@@ -1394,8 +1394,8 @@ bool GDBRemoteCommunicationClient::DeallocateMemory(addr_t addr) {
return false;
}
-Error GDBRemoteCommunicationClient::Detach(bool keep_stopped) {
- Error error;
+Status GDBRemoteCommunicationClient::Detach(bool keep_stopped) {
+ Status error;
if (keep_stopped) {
if (m_supports_detach_stay_stopped == eLazyBoolCalculate) {
@@ -1434,9 +1434,9 @@ Error GDBRemoteCommunicationClient::Detach(bool keep_stopped) {
return error;
}
-Error GDBRemoteCommunicationClient::GetMemoryRegionInfo(
+Status GDBRemoteCommunicationClient::GetMemoryRegionInfo(
lldb::addr_t addr, lldb_private::MemoryRegionInfo &region_info) {
- Error error;
+ Status error;
region_info.Clear();
if (m_supports_memory_region_info != eLazyBoolNo) {
@@ -1529,8 +1529,8 @@ Error GDBRemoteCommunicationClient::GetMemoryRegionInfo(
return error;
}
-Error GDBRemoteCommunicationClient::GetWatchpointSupportInfo(uint32_t &num) {
- Error error;
+Status GDBRemoteCommunicationClient::GetWatchpointSupportInfo(uint32_t &num) {
+ Status error;
if (m_supports_watchpoint_support_info == eLazyBoolYes) {
num = m_num_supported_hardware_watchpoints;
@@ -1568,18 +1568,18 @@ Error GDBRemoteCommunicationClient::GetWatchpointSupportInfo(uint32_t &num) {
return error;
}
-lldb_private::Error GDBRemoteCommunicationClient::GetWatchpointSupportInfo(
+lldb_private::Status GDBRemoteCommunicationClient::GetWatchpointSupportInfo(
uint32_t &num, bool &after, const ArchSpec &arch) {
- Error error(GetWatchpointSupportInfo(num));
+ Status error(GetWatchpointSupportInfo(num));
if (error.Success())
error = GetWatchpointsTriggerAfterInstruction(after, arch);
return error;
}
-lldb_private::Error
+lldb_private::Status
GDBRemoteCommunicationClient::GetWatchpointsTriggerAfterInstruction(
bool &after, const ArchSpec &arch) {
- Error error;
+ Status error;
llvm::Triple::ArchType atype = arch.GetMachine();
// we assume watchpoints will happen after running the relevant opcode
@@ -2539,7 +2539,7 @@ uint8_t GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(
if (response.IsOKResponse())
return 0;
- // Error while setting breakpoint, send back specific error
+ // Status while setting breakpoint, send back specific error
if (response.IsErrorResponse())
return response.GetError();
@@ -2635,7 +2635,7 @@ lldb::addr_t GDBRemoteCommunicationClient::GetShlibInfoAddr() {
return response.GetHexMaxU64(false, LLDB_INVALID_ADDRESS);
}
-lldb_private::Error GDBRemoteCommunicationClient::RunShellCommand(
+lldb_private::Status GDBRemoteCommunicationClient::RunShellCommand(
const char *command, // Shouldn't be NULL
const FileSpec &
working_dir, // Pass empty FileSpec to use the current working directory
@@ -2661,32 +2661,32 @@ lldb_private::Error GDBRemoteCommunicationClient::RunShellCommand(
if (SendPacketAndWaitForResponse(stream.GetString(), response, false) ==
PacketResult::Success) {
if (response.GetChar() != 'F')
- return Error("malformed reply");
+ return Status("malformed reply");
if (response.GetChar() != ',')
- return Error("malformed reply");
+ return Status("malformed reply");
uint32_t exitcode = response.GetHexMaxU32(false, UINT32_MAX);
if (exitcode == UINT32_MAX)
- return Error("unable to run remote process");
+ return Status("unable to run remote process");
else if (status_ptr)
*status_ptr = exitcode;
if (response.GetChar() != ',')
- return Error("malformed reply");
+ return Status("malformed reply");
uint32_t signo = response.GetHexMaxU32(false, UINT32_MAX);
if (signo_ptr)
*signo_ptr = signo;
if (response.GetChar() != ',')
- return Error("malformed reply");
+ return Status("malformed reply");
std::string output;
response.GetEscapedBinaryData(output);
if (command_output)
command_output->assign(output);
- return Error();
+ return Status();
}
- return Error("unable to send packet");
+ return Status("unable to send packet");
}
-Error GDBRemoteCommunicationClient::MakeDirectory(const FileSpec &file_spec,
- uint32_t file_permissions) {
+Status GDBRemoteCommunicationClient::MakeDirectory(const FileSpec &file_spec,
+ uint32_t file_permissions) {
std::string path{file_spec.GetPath(false)};
lldb_private::StreamString stream;
stream.PutCString("qPlatform_mkdir:");
@@ -2698,16 +2698,17 @@ Error GDBRemoteCommunicationClient::MakeDirectory(const FileSpec &file_spec,
if (SendPacketAndWaitForResponse(packet, response, false) !=
PacketResult::Success)
- return Error("failed to send '%s' packet", packet.str().c_str());
+ return Status("failed to send '%s' packet", packet.str().c_str());
if (response.GetChar() != 'F')
- return Error("invalid response to '%s' packet", packet.str().c_str());
+ return Status("invalid response to '%s' packet", packet.str().c_str());
- return Error(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
+ return Status(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
}
-Error GDBRemoteCommunicationClient::SetFilePermissions(
- const FileSpec &file_spec, uint32_t file_permissions) {
+Status
+GDBRemoteCommunicationClient::SetFilePermissions(const FileSpec &file_spec,
+ uint32_t file_permissions) {
std::string path{file_spec.GetPath(false)};
lldb_private::StreamString stream;
stream.PutCString("qPlatform_chmod:");
@@ -2719,16 +2720,16 @@ Error GDBRemoteCommunicationClient::SetFilePermissions(
if (SendPacketAndWaitForResponse(packet, response, false) !=
PacketResult::Success)
- return Error("failed to send '%s' packet", stream.GetData());
+ return Status("failed to send '%s' packet", stream.GetData());
if (response.GetChar() != 'F')
- return Error("invalid response to '%s' packet", stream.GetData());
+ return Status("invalid response to '%s' packet", stream.GetData());
- return Error(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
+ return Status(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
}
static uint64_t ParseHostIOPacketResponse(StringExtractorGDBRemote &response,
- uint64_t fail_result, Error &error) {
+ uint64_t fail_result, Status &error) {
response.SetFilePos(0);
if (response.GetChar() != 'F')
return fail_result;
@@ -2748,7 +2749,7 @@ static uint64_t ParseHostIOPacketResponse(StringExtractorGDBRemote &response,
lldb::user_id_t
GDBRemoteCommunicationClient::OpenFile(const lldb_private::FileSpec &file_spec,
uint32_t flags, mode_t mode,
- Error &error) {
+ Status &error) {
std::string path(file_spec.GetPath(false));
lldb_private::StreamString stream;
stream.PutCString("vFile:open:");
@@ -2767,7 +2768,8 @@ GDBRemoteCommunicationClient::OpenFile(const lldb_private::FileSpec &file_spec,
return UINT64_MAX;
}
-bool GDBRemoteCommunicationClient::CloseFile(lldb::user_id_t fd, Error &error) {
+bool GDBRemoteCommunicationClient::CloseFile(lldb::user_id_t fd,
+ Status &error) {
lldb_private::StreamString stream;
stream.Printf("vFile:close:%i", (int)fd);
StringExtractorGDBRemote response;
@@ -2796,10 +2798,11 @@ lldb::user_id_t GDBRemoteCommunicationClient::GetFileSize(
return UINT64_MAX;
}
-Error GDBRemoteCommunicationClient::GetFilePermissions(
- const FileSpec &file_spec, uint32_t &file_permissions) {
+Status
+GDBRemoteCommunicationClient::GetFilePermissions(const FileSpec &file_spec,
+ uint32_t &file_permissions) {
std::string path{file_spec.GetPath(false)};
- Error error;
+ Status error;
lldb_private::StreamString stream;
stream.PutCString("vFile:mode:");
stream.PutCStringAsRawHex8(path.c_str());
@@ -2834,7 +2837,7 @@ Error GDBRemoteCommunicationClient::GetFilePermissions(
uint64_t GDBRemoteCommunicationClient::ReadFile(lldb::user_id_t fd,
uint64_t offset, void *dst,
uint64_t dst_len,
- Error &error) {
+ Status &error) {
lldb_private::StreamString stream;
stream.Printf("vFile:pread:%i,%" PRId64 ",%" PRId64, (int)fd, dst_len,
offset);
@@ -2868,7 +2871,7 @@ uint64_t GDBRemoteCommunicationClient::WriteFile(lldb::user_id_t fd,
uint64_t offset,
const void *src,
uint64_t src_len,
- Error &error) {
+ Status &error) {
lldb_private::StreamGDBRemote stream;
stream.Printf("vFile:pwrite:%i,%" PRId64 ",", (int)fd, offset);
stream.PutEscapedBytes(src, src_len);
@@ -2896,10 +2899,10 @@ uint64_t GDBRemoteCommunicationClient::WriteFile(lldb::user_id_t fd,
return 0;
}
-Error GDBRemoteCommunicationClient::CreateSymlink(const FileSpec &src,
- const FileSpec &dst) {
+Status GDBRemoteCommunicationClient::CreateSymlink(const FileSpec &src,
+ const FileSpec &dst) {
std::string src_path{src.GetPath(false)}, dst_path{dst.GetPath(false)};
- Error error;
+ Status error;
lldb_private::StreamGDBRemote stream;
stream.PutCString("vFile:symlink:");
// the unix symlink() command reverses its parameters where the dst if first,
@@ -2930,9 +2933,9 @@ Error GDBRemoteCommunicationClient::CreateSymlink(const FileSpec &src,
return error;
}
-Error GDBRemoteCommunicationClient::Unlink(const FileSpec &file_spec) {
+Status GDBRemoteCommunicationClient::Unlink(const FileSpec &file_spec) {
std::string path{file_spec.GetPath(false)};
- Error error;
+ Status error;
lldb_private::StreamGDBRemote stream;
stream.PutCString("vFile:unlink:");
// the unix symlink() command reverses its parameters where the dst if first,
@@ -3221,12 +3224,12 @@ ParseModuleSpec(StructuredData::Dictionary *dict) {
if (!dict)
return llvm::None;
- std::string string;
+ llvm::StringRef string;
uint64_t integer;
if (!dict->GetValueForKeyAsString("uuid", string))
return llvm::None;
- result.GetUUID().SetFromCString(string.c_str(), string.size());
+ result.GetUUID().SetFromStringRef(string, string.size());
if (!dict->GetValueForKeyAsInteger("file_offset", integer))
return llvm::None;
@@ -3238,7 +3241,7 @@ ParseModuleSpec(StructuredData::Dictionary *dict) {
if (!dict->GetValueForKeyAsString("triple", string))
return llvm::None;
- result.GetArchitecture().SetTriple(string.c_str());
+ result.GetArchitecture().SetTriple(string);
if (!dict->GetValueForKeyAsString("file_path", string))
return llvm::None;
@@ -3311,7 +3314,7 @@ GDBRemoteCommunicationClient::GetModulesInfo(
bool GDBRemoteCommunicationClient::ReadExtFeature(
const lldb_private::ConstString object,
const lldb_private::ConstString annex, std::string &out,
- lldb_private::Error &err) {
+ lldb_private::Status &err) {
std::stringstream output;
StringExtractorGDBRemote chunk;
@@ -3590,7 +3593,7 @@ GDBRemoteCommunicationClient::GetSupportedStructuredDataPlugins() {
: nullptr;
}
-Error GDBRemoteCommunicationClient::SendSignalsToIgnore(
+Status GDBRemoteCommunicationClient::SendSignalsToIgnore(
llvm::ArrayRef<int32_t> signals) {
// Format packet:
// QPassSignals:<hex_sig1>;<hex_sig2>...;<hex_sigN>
@@ -3601,18 +3604,18 @@ Error GDBRemoteCommunicationClient::SendSignalsToIgnore(
auto send_status = SendPacketAndWaitForResponse(packet, response, false);
if (send_status != GDBRemoteCommunication::PacketResult::Success)
- return Error("Sending QPassSignals packet failed");
+ return Status("Sending QPassSignals packet failed");
if (response.IsOKResponse()) {
- return Error();
+ return Status();
} else {
- return Error("Unknown error happened during sending QPassSignals packet.");
+ return Status("Unknown error happened during sending QPassSignals packet.");
}
}
-Error GDBRemoteCommunicationClient::ConfigureRemoteStructuredData(
+Status GDBRemoteCommunicationClient::ConfigureRemoteStructuredData(
const ConstString &type_name, const StructuredData::ObjectSP &config_sp) {
- Error error;
+ Status error;
if (type_name.GetLength() == 0) {
error.SetErrorString("invalid type_name argument");
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
index 63b9708cc9a0..08d0bd5d690b 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
@@ -41,7 +41,7 @@ public:
// After connecting, send the handshake to the server to make sure
// we are communicating with it.
//------------------------------------------------------------------
- bool HandshakeWithServer(Error *error_ptr);
+ bool HandshakeWithServer(Status *error_ptr);
// For packets which specify a range of output to be returned,
// return all of the output via a series of request packets of the form
@@ -230,17 +230,17 @@ public:
bool DeallocateMemory(lldb::addr_t addr);
- Error Detach(bool keep_stopped);
+ Status Detach(bool keep_stopped);
- Error GetMemoryRegionInfo(lldb::addr_t addr, MemoryRegionInfo &range_info);
+ Status GetMemoryRegionInfo(lldb::addr_t addr, MemoryRegionInfo &range_info);
- Error GetWatchpointSupportInfo(uint32_t &num);
+ Status GetWatchpointSupportInfo(uint32_t &num);
- Error GetWatchpointSupportInfo(uint32_t &num, bool &after,
- const ArchSpec &arch);
+ Status GetWatchpointSupportInfo(uint32_t &num, bool &after,
+ const ArchSpec &arch);
- Error GetWatchpointsTriggerAfterInstruction(bool &after,
- const ArchSpec &arch);
+ Status GetWatchpointsTriggerAfterInstruction(bool &after,
+ const ArchSpec &arch);
const ArchSpec &GetHostArchitecture();
@@ -365,33 +365,33 @@ public:
bool &sequence_mutex_unavailable);
lldb::user_id_t OpenFile(const FileSpec &file_spec, uint32_t flags,
- mode_t mode, Error &error);
+ mode_t mode, Status &error);
- bool CloseFile(lldb::user_id_t fd, Error &error);
+ bool CloseFile(lldb::user_id_t fd, Status &error);
lldb::user_id_t GetFileSize(const FileSpec &file_spec);
- Error GetFilePermissions(const FileSpec &file_spec,
- uint32_t &file_permissions);
+ Status GetFilePermissions(const FileSpec &file_spec,
+ uint32_t &file_permissions);
- Error SetFilePermissions(const FileSpec &file_spec,
- uint32_t file_permissions);
+ Status SetFilePermissions(const FileSpec &file_spec,
+ uint32_t file_permissions);
uint64_t ReadFile(lldb::user_id_t fd, uint64_t offset, void *dst,
- uint64_t dst_len, Error &error);
+ uint64_t dst_len, Status &error);
uint64_t WriteFile(lldb::user_id_t fd, uint64_t offset, const void *src,
- uint64_t src_len, Error &error);
+ uint64_t src_len, Status &error);
- Error CreateSymlink(const FileSpec &src, const FileSpec &dst);
+ Status CreateSymlink(const FileSpec &src, const FileSpec &dst);
- Error Unlink(const FileSpec &file_spec);
+ Status Unlink(const FileSpec &file_spec);
- Error MakeDirectory(const FileSpec &file_spec, uint32_t mode);
+ Status MakeDirectory(const FileSpec &file_spec, uint32_t mode);
bool GetFileExists(const FileSpec &file_spec);
- Error RunShellCommand(
+ Status RunShellCommand(
const char *command, // Shouldn't be nullptr
const FileSpec &working_dir, // Pass empty FileSpec to use the current
// working directory
@@ -448,12 +448,12 @@ public:
bool ReadExtFeature(const lldb_private::ConstString object,
const lldb_private::ConstString annex, std::string &out,
- lldb_private::Error &err);
+ lldb_private::Status &err);
void ServeSymbolLookups(lldb_private::Process *process);
// Sends QPassSignals packet to the server with given signals to ignore.
- Error SendSignalsToIgnore(llvm::ArrayRef<int32_t> signals);
+ Status SendSignalsToIgnore(llvm::ArrayRef<int32_t> signals);
//------------------------------------------------------------------
/// Return the feature set supported by the gdb-remote server.
@@ -495,7 +495,7 @@ public:
///
/// @see \b Process::ConfigureStructuredData(...) for details.
//------------------------------------------------------------------
- Error
+ Status
ConfigureRemoteStructuredData(const ConstString &type_name,
const StructuredData::ObjectSP &config_sp);
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
index 934824e214dc..dac675ee9432 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
@@ -39,7 +39,7 @@ void GDBRemoteCommunicationServer::RegisterPacketHandler(
GDBRemoteCommunication::PacketResult
GDBRemoteCommunicationServer::GetPacketAndSendResponse(
- Timeout<std::micro> timeout, Error &error, bool &interrupt, bool &quit) {
+ Timeout<std::micro> timeout, Status &error, bool &interrupt, bool &quit) {
StringExtractorGDBRemote packet;
PacketResult packet_result = WaitForPacketNoLock(packet, timeout, false);
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
index 0c583e62d76b..6eb25f8b9f98 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
@@ -31,8 +31,8 @@ class GDBRemoteCommunicationServer : public GDBRemoteCommunication {
public:
using PortMap = std::map<uint16_t, lldb::pid_t>;
using PacketHandler =
- std::function<PacketResult(StringExtractorGDBRemote &packet, Error &error,
- bool &interrupt, bool &quit)>;
+ std::function<PacketResult(StringExtractorGDBRemote &packet,
+ Status &error, bool &interrupt, bool &quit)>;
GDBRemoteCommunicationServer(const char *comm_name,
const char *listener_name);
@@ -44,7 +44,7 @@ public:
PacketHandler handler);
PacketResult GetPacketAndSendResponse(Timeout<std::micro> timeout,
- Error &error, bool &interrupt,
+ Status &error, bool &interrupt,
bool &quit);
// After connecting, do a little handshake with the client to make sure
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
index 66c1b15ff857..de2400c51ba3 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
@@ -523,7 +523,7 @@ GDBRemoteCommunicationServerCommon::Handle_vFile_Open(
File::ConvertOpenOptionsForPOSIXOpen(packet.GetHexMaxU32(false, 0));
if (packet.GetChar() == ',') {
mode_t mode = packet.GetHexMaxU32(false, 0600);
- Error error;
+ Status error;
const FileSpec path_spec{path, true};
int fd = ::open(path_spec.GetCString(), flags, mode);
const int save_errno = fd == -1 ? errno : 0;
@@ -544,7 +544,7 @@ GDBRemoteCommunicationServerCommon::Handle_vFile_Close(
StringExtractorGDBRemote &packet) {
packet.SetFilePos(::strlen("vFile:close:"));
int fd = packet.GetS32(-1);
- Error error;
+ Status error;
int err = -1;
int save_errno = 0;
if (fd >= 0) {
@@ -663,7 +663,7 @@ GDBRemoteCommunicationServerCommon::Handle_vFile_Mode(
std::string path;
packet.GetHexByteString(path);
if (!path.empty()) {
- Error error;
+ Status error;
const uint32_t mode = File::GetPermissions(FileSpec{path, true}, error);
StreamString response;
response.Printf("F%u", mode);
@@ -702,7 +702,7 @@ GDBRemoteCommunicationServerCommon::Handle_vFile_symlink(
packet.GetHexByteStringTerminatedBy(dst, ',');
packet.GetChar(); // Skip ',' char
packet.GetHexByteString(src);
- Error error = FileSystem::Symlink(FileSpec{src, true}, FileSpec{dst, false});
+ Status error = FileSystem::Symlink(FileSpec{src, true}, FileSpec{dst, false});
StreamString response;
response.Printf("F%u,%u", error.GetError(), error.GetError());
return SendPacketNoLock(response.GetString());
@@ -714,7 +714,7 @@ GDBRemoteCommunicationServerCommon::Handle_vFile_unlink(
packet.SetFilePos(::strlen("vFile:unlink:"));
std::string path;
packet.GetHexByteString(path);
- Error error(llvm::sys::fs::remove(path));
+ Status error(llvm::sys::fs::remove(path));
StreamString response;
response.Printf("F%u,%u", error.GetError(), error.GetError());
return SendPacketNoLock(response.GetString());
@@ -736,7 +736,7 @@ GDBRemoteCommunicationServerCommon::Handle_qPlatform_shell(
packet.GetHexByteString(working_dir);
int status, signo;
std::string output;
- Error err =
+ Status err =
Host::RunShellCommand(path.c_str(), FileSpec{working_dir, true},
&status, &signo, &output, timeout);
StreamGDBRemote response;
@@ -794,7 +794,7 @@ GDBRemoteCommunicationServerCommon::Handle_qPlatform_mkdir(
if (packet.GetChar() == ',') {
std::string path;
packet.GetHexByteString(path);
- Error error(llvm::sys::fs::create_directory(path, mode));
+ Status error(llvm::sys::fs::create_directory(path, mode));
StreamGDBRemote response;
response.Printf("F%u", error.GetError());
@@ -814,7 +814,7 @@ GDBRemoteCommunicationServerCommon::Handle_qPlatform_chmod(
if (packet.GetChar() == ',') {
std::string path;
packet.GetHexByteString(path);
- Error error(llvm::sys::fs::setPermissions(path, perms));
+ Status error(llvm::sys::fs::setPermissions(path, perms));
StreamGDBRemote response;
response.Printf("F%u", error.GetError());
@@ -1140,7 +1140,7 @@ GDBRemoteCommunicationServerCommon::Handle_jModulesInfo(
packet_array->GetItemAtIndex(i)->GetAsDictionary();
if (!query)
continue;
- std::string file, triple;
+ llvm::StringRef file, triple;
if (!query->GetValueForKeyAsString("file", file) ||
!query->GetValueForKeyAsString("triple", triple))
continue;
@@ -1278,9 +1278,10 @@ FileSpec GDBRemoteCommunicationServerCommon::FindModuleFile(
#endif
}
-ModuleSpec GDBRemoteCommunicationServerCommon::GetModuleInfo(
- const std::string &module_path, const std::string &triple) {
- ArchSpec arch(triple.c_str());
+ModuleSpec
+GDBRemoteCommunicationServerCommon::GetModuleInfo(llvm::StringRef module_path,
+ llvm::StringRef triple) {
+ ArchSpec arch(triple);
const FileSpec req_module_path_spec(module_path, true);
const FileSpec module_path_spec =
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h
index 321a92266bdd..e9ab8f1a11de 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h
@@ -38,7 +38,7 @@ public:
protected:
ProcessLaunchInfo m_process_launch_info;
- Error m_process_launch_error;
+ Status m_process_launch_error;
ProcessInstanceInfoList m_proc_infos;
uint32_t m_proc_infos_index;
bool m_thread_suffix_supported;
@@ -130,7 +130,7 @@ protected:
PacketResult (T::*handler)(StringExtractorGDBRemote &packet)) {
RegisterPacketHandler(packet_type,
[this, handler](StringExtractorGDBRemote packet,
- Error &error, bool &interrupt,
+ Status &error, bool &interrupt,
bool &quit) {
return (static_cast<T *>(this)->*handler)(packet);
});
@@ -144,17 +144,16 @@ protected:
/// with all the information for a child process to be launched.
///
/// @return
- /// An Error object indicating the success or failure of the
+ /// An Status object indicating the success or failure of the
/// launch.
//------------------------------------------------------------------
- virtual Error LaunchProcess() = 0;
+ virtual Status LaunchProcess() = 0;
virtual FileSpec FindModuleFile(const std::string &module_path,
const ArchSpec &arch);
private:
- ModuleSpec GetModuleInfo(const std::string &module_path,
- const std::string &triple);
+ ModuleSpec GetModuleInfo(llvm::StringRef module_path, llvm::StringRef triple);
};
} // namespace process_gdb_remote
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
index 290889ec662a..ec7c2f5330d7 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
@@ -184,35 +184,36 @@ void GDBRemoteCommunicationServerLLGS::RegisterPacketHandlers() {
&GDBRemoteCommunicationServerLLGS::Handle_QPassSignals);
RegisterPacketHandler(StringExtractorGDBRemote::eServerPacketType_k,
- [this](StringExtractorGDBRemote packet, Error &error,
+ [this](StringExtractorGDBRemote packet, Status &error,
bool &interrupt, bool &quit) {
quit = true;
return this->Handle_k(packet);
});
}
-Error GDBRemoteCommunicationServerLLGS::SetLaunchArguments(
- const char *const args[], int argc) {
+Status
+GDBRemoteCommunicationServerLLGS::SetLaunchArguments(const char *const args[],
+ int argc) {
if ((argc < 1) || !args || !args[0] || !args[0][0])
- return Error("%s: no process command line specified to launch",
- __FUNCTION__);
+ return Status("%s: no process command line specified to launch",
+ __FUNCTION__);
m_process_launch_info.SetArguments(const_cast<const char **>(args), true);
- return Error();
+ return Status();
}
-Error GDBRemoteCommunicationServerLLGS::SetLaunchFlags(
- unsigned int launch_flags) {
+Status
+GDBRemoteCommunicationServerLLGS::SetLaunchFlags(unsigned int launch_flags) {
m_process_launch_info.GetFlags().Set(launch_flags);
- return Error();
+ return Status();
}
-Error GDBRemoteCommunicationServerLLGS::LaunchProcess() {
+Status GDBRemoteCommunicationServerLLGS::LaunchProcess() {
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PROCESS));
if (!m_process_launch_info.GetArguments().GetArgumentCount())
- return Error("%s: no process command line specified to launch",
- __FUNCTION__);
+ return Status("%s: no process command line specified to launch",
+ __FUNCTION__);
const bool should_forward_stdio =
m_process_launch_info.GetFileActionForFD(STDIN_FILENO) == nullptr ||
@@ -224,7 +225,7 @@ Error GDBRemoteCommunicationServerLLGS::LaunchProcess() {
const bool default_to_use_pty = true;
m_process_launch_info.FinalizeFileActions(nullptr, default_to_use_pty);
- Error error;
+ Status error;
{
std::lock_guard<std::recursive_mutex> guard(m_debugged_process_mutex);
assert(!m_debugged_process_sp && "lldb-server creating debugged "
@@ -286,8 +287,8 @@ Error GDBRemoteCommunicationServerLLGS::LaunchProcess() {
return error;
}
-Error GDBRemoteCommunicationServerLLGS::AttachToProcess(lldb::pid_t pid) {
- Error error;
+Status GDBRemoteCommunicationServerLLGS::AttachToProcess(lldb::pid_t pid) {
+ Status error;
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PROCESS));
if (log)
@@ -298,10 +299,10 @@ Error GDBRemoteCommunicationServerLLGS::AttachToProcess(lldb::pid_t pid) {
// else.
if (m_debugged_process_sp &&
m_debugged_process_sp->GetID() != LLDB_INVALID_PROCESS_ID)
- return Error("cannot attach to a process %" PRIu64
- " when another process with pid %" PRIu64
- " is being debugged.",
- pid, m_debugged_process_sp->GetID());
+ return Status("cannot attach to a process %" PRIu64
+ " when another process with pid %" PRIu64
+ " is being debugged.",
+ pid, m_debugged_process_sp->GetID());
// Try to attach.
error = NativeProcessProtocol::Attach(pid, *this, m_mainloop,
@@ -420,7 +421,7 @@ static void WriteRegisterValueInHexFixedWidth(
lldb::ByteOrder byte_order) {
RegisterValue reg_value;
if (!reg_value_p) {
- Error error = reg_ctx_sp->ReadRegister(&reg_info, reg_value);
+ Status error = reg_ctx_sp->ReadRegister(&reg_info, reg_value);
if (error.Success())
reg_value_p = &reg_value;
// else log.
@@ -488,7 +489,7 @@ static JSONObject::SP GetRegistersAsJSON(NativeThreadProtocol &thread) {
// registers.
RegisterValue reg_value;
- Error error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
+ Status error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
if (error.Fail()) {
if (log)
log->Printf("%s failed to read register '%s' index %" PRIu32 ": %s",
@@ -739,7 +740,7 @@ GDBRemoteCommunicationServerLLGS::SendStopReplyPacketForThread(
reg_ctx_sp->GetRegisterInfoAtIndex(reg_to_read);
RegisterValue reg_value;
- Error error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
+ Status error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
if (error.Fail()) {
if (log)
log->Printf("%s failed to read register '%s' index %" PRIu32 ": %s",
@@ -793,7 +794,7 @@ GDBRemoteCommunicationServerLLGS::SendStopReplyPacketForThread(
} else if (reg_info_p->value_regs == nullptr) {
// Only expediate registers that are not contained in other registers.
RegisterValue reg_value;
- Error error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
+ Status error = reg_ctx_sp->ReadRegister(reg_info_p, reg_value);
if (error.Success()) {
response.Printf("%.02x:", *reg_num_p);
WriteRegisterValueInHexFixedWidth(response, reg_ctx_sp, *reg_info_p,
@@ -960,7 +961,7 @@ void GDBRemoteCommunicationServerLLGS::DataAvailableCallback() {
bool interrupt = false;
bool done = false;
- Error error;
+ Status error;
while (true) {
const PacketResult result = GetPacketAndSendResponse(
std::chrono::microseconds(0), error, interrupt, done);
@@ -978,12 +979,12 @@ void GDBRemoteCommunicationServerLLGS::DataAvailableCallback() {
}
}
-Error GDBRemoteCommunicationServerLLGS::InitializeConnection(
+Status GDBRemoteCommunicationServerLLGS::InitializeConnection(
std::unique_ptr<Connection> &&connection) {
IOObjectSP read_object_sp = connection->GetReadObject();
GDBRemoteCommunicationServer::SetConnection(connection.release());
- Error error;
+ Status error;
m_network_handle_up = m_mainloop.RegisterReadObject(
read_object_sp, [this](MainLoopBase &) { DataAvailableCallback(); },
error);
@@ -1005,8 +1006,8 @@ GDBRemoteCommunicationServerLLGS::SendONotification(const char *buffer,
return SendPacketNoLock(response.GetString());
}
-Error GDBRemoteCommunicationServerLLGS::SetSTDIOFileDescriptor(int fd) {
- Error error;
+Status GDBRemoteCommunicationServerLLGS::SetSTDIOFileDescriptor(int fd) {
+ Status error;
// Set up the reading/handling of process I/O
std::unique_ptr<ConnectionFileDescriptor> conn_up(
@@ -1024,7 +1025,7 @@ Error GDBRemoteCommunicationServerLLGS::SetSTDIOFileDescriptor(int fd) {
return error;
}
- return Error();
+ return Status();
}
void GDBRemoteCommunicationServerLLGS::StartSTDIOForwarding() {
@@ -1032,7 +1033,7 @@ void GDBRemoteCommunicationServerLLGS::StartSTDIOForwarding() {
if (!m_stdio_communication.IsConnected())
return;
- Error error;
+ Status error;
lldbassert(!m_stdio_handle_up);
m_stdio_handle_up = m_mainloop.RegisterReadObject(
m_stdio_communication.GetConnection()->GetReadObject(),
@@ -1055,7 +1056,7 @@ void GDBRemoteCommunicationServerLLGS::StopSTDIOForwarding() {
void GDBRemoteCommunicationServerLLGS::SendProcessOutput() {
char buffer[1024];
ConnectionStatus status;
- Error error;
+ Status error;
while (true) {
size_t bytes_read = m_stdio_communication.Read(
buffer, sizeof buffer, std::chrono::microseconds(0), status, &error);
@@ -1140,7 +1141,7 @@ GDBRemoteCommunicationServerLLGS::Handle_k(StringExtractorGDBRemote &packet) {
return PacketResult::Success;
}
- Error error = m_debugged_process_sp->Kill();
+ Status error = m_debugged_process_sp->Kill();
if (error.Fail() && log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s Failed to kill debugged "
"process %" PRIu64 ": %s",
@@ -1223,7 +1224,7 @@ GDBRemoteCommunicationServerLLGS::Handle_C(StringExtractorGDBRemote &packet) {
}
ResumeActionList resume_actions(StateType::eStateRunning, 0);
- Error error;
+ Status error;
// We have two branches: what to do if a continue thread is specified (in
// which case we target
@@ -1304,7 +1305,7 @@ GDBRemoteCommunicationServerLLGS::Handle_c(StringExtractorGDBRemote &packet) {
// Build the ResumeActionList
ResumeActionList actions(StateType::eStateRunning, 0);
- Error error = m_debugged_process_sp->Resume(actions);
+ Status error = m_debugged_process_sp->Resume(actions);
if (error.Fail()) {
if (log) {
log->Printf(
@@ -1428,7 +1429,7 @@ GDBRemoteCommunicationServerLLGS::Handle_vCont(
thread_actions.Append(thread_action);
}
- Error error = m_debugged_process_sp->Resume(thread_actions);
+ Status error = m_debugged_process_sp->Resume(thread_actions);
if (error.Fail()) {
if (log) {
log->Printf("GDBRemoteCommunicationServerLLGS::%s vCont failed for "
@@ -1853,7 +1854,7 @@ GDBRemoteCommunicationServerLLGS::Handle_p(StringExtractorGDBRemote &packet) {
// Retrieve the value
RegisterValue reg_value;
- Error error = reg_context_sp->ReadRegister(reg_info, reg_value);
+ Status error = reg_context_sp->ReadRegister(reg_info, reg_value);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s failed, read of "
@@ -1973,7 +1974,7 @@ GDBRemoteCommunicationServerLLGS::Handle_P(StringExtractorGDBRemote &packet) {
StreamGDBRemote response;
RegisterValue reg_value(reg_bytes, reg_size, process_arch.GetByteOrder());
- Error error = reg_context_sp->WriteRegister(reg_info, reg_value);
+ Status error = reg_context_sp->WriteRegister(reg_info, reg_value);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s failed, write of "
@@ -2088,7 +2089,7 @@ GDBRemoteCommunicationServerLLGS::Handle_I(StringExtractorGDBRemote &packet) {
// TODO: enqueue this block in circular buffer and send window size to
// remote host
ConnectionStatus status;
- Error error;
+ Status error;
m_stdio_communication.Write(tmp, read, status, &error);
if (error.Fail()) {
return SendErrorResponse(0x15);
@@ -2114,7 +2115,7 @@ GDBRemoteCommunicationServerLLGS::Handle_interrupt(
}
// Interrupt the process.
- Error error = m_debugged_process_sp->Interrupt();
+ Status error = m_debugged_process_sp->Interrupt();
if (error.Fail()) {
if (log) {
log->Printf(
@@ -2181,7 +2182,7 @@ GDBRemoteCommunicationServerLLGS::Handle_memory_read(
// Retrieve the process memory.
size_t bytes_read = 0;
- Error error = m_debugged_process_sp->ReadMemoryWithoutTrap(
+ Status error = m_debugged_process_sp->ReadMemoryWithoutTrap(
read_addr, &buf[0], byte_count, bytes_read);
if (error.Fail()) {
if (log)
@@ -2282,8 +2283,8 @@ GDBRemoteCommunicationServerLLGS::Handle_M(StringExtractorGDBRemote &packet) {
// Write the process memory.
size_t bytes_written = 0;
- Error error = m_debugged_process_sp->WriteMemory(write_addr, &buf[0],
- byte_count, bytes_written);
+ Status error = m_debugged_process_sp->WriteMemory(write_addr, &buf[0],
+ byte_count, bytes_written);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s pid %" PRIu64
@@ -2329,7 +2330,7 @@ GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfoSupported(
// Test if we can get any region back when asking for the region around NULL.
MemoryRegionInfo region_info;
- const Error error =
+ const Status error =
m_debugged_process_sp->GetMemoryRegionInfo(0, region_info);
if (error.Fail()) {
// We don't support memory region info collection for this
@@ -2367,7 +2368,7 @@ GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfo(
// Get the memory region info for the target address.
MemoryRegionInfo region_info;
- const Error error =
+ const Status error =
m_debugged_process_sp->GetMemoryRegionInfo(read_addr, region_info);
if (error.Fail()) {
// Return the error message.
@@ -2485,7 +2486,7 @@ GDBRemoteCommunicationServerLLGS::Handle_Z(StringExtractorGDBRemote &packet) {
if (want_breakpoint) {
// Try to set the breakpoint.
- const Error error =
+ const Status error =
m_debugged_process_sp->SetBreakpoint(addr, size, want_hardware);
if (error.Success())
return SendOKResponse();
@@ -2498,7 +2499,7 @@ GDBRemoteCommunicationServerLLGS::Handle_Z(StringExtractorGDBRemote &packet) {
return SendErrorResponse(0x09);
} else {
// Try to set the watchpoint.
- const Error error = m_debugged_process_sp->SetWatchpoint(
+ const Status error = m_debugged_process_sp->SetWatchpoint(
addr, size, watch_flags, want_hardware);
if (error.Success())
return SendOKResponse();
@@ -2582,7 +2583,7 @@ GDBRemoteCommunicationServerLLGS::Handle_z(StringExtractorGDBRemote &packet) {
if (want_breakpoint) {
// Try to clear the breakpoint.
- const Error error =
+ const Status error =
m_debugged_process_sp->RemoveBreakpoint(addr, want_hardware);
if (error.Success())
return SendOKResponse();
@@ -2595,7 +2596,7 @@ GDBRemoteCommunicationServerLLGS::Handle_z(StringExtractorGDBRemote &packet) {
return SendErrorResponse(0x09);
} else {
// Try to clear the watchpoint.
- const Error error = m_debugged_process_sp->RemoveWatchpoint(addr);
+ const Status error = m_debugged_process_sp->RemoveWatchpoint(addr);
if (error.Success())
return SendOKResponse();
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_WATCHPOINTS));
@@ -2646,7 +2647,7 @@ GDBRemoteCommunicationServerLLGS::Handle_s(StringExtractorGDBRemote &packet) {
// All other threads stop while we're single stepping a thread.
actions.SetDefaultThreadActionIfNeeded(eStateStopped, 0);
- Error error = m_debugged_process_sp->Resume(actions);
+ Status error = m_debugged_process_sp->Resume(actions);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s pid %" PRIu64
@@ -2782,7 +2783,7 @@ GDBRemoteCommunicationServerLLGS::Handle_QSaveRegisterState(
// Save registers to a buffer.
DataBufferSP register_data_sp;
- Error error = reg_context_sp->ReadAllRegisterValues(register_data_sp);
+ Status error = reg_context_sp->ReadAllRegisterValues(register_data_sp);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s pid %" PRIu64
@@ -2871,7 +2872,7 @@ GDBRemoteCommunicationServerLLGS::Handle_QRestoreRegisterState(
m_saved_registers_map.erase(it);
}
- Error error = reg_context_sp->WriteAllRegisterValues(register_data_sp);
+ Status error = reg_context_sp->WriteAllRegisterValues(register_data_sp);
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s pid %" PRIu64
@@ -2906,7 +2907,7 @@ GDBRemoteCommunicationServerLLGS::Handle_vAttach(
"pid %" PRIu64,
__FUNCTION__, pid);
- Error error = AttachToProcess(pid);
+ Status error = AttachToProcess(pid);
if (error.Fail()) {
if (log)
@@ -2954,7 +2955,7 @@ GDBRemoteCommunicationServerLLGS::Handle_D(StringExtractorGDBRemote &packet) {
return SendIllFormedResponse(packet, "Invalid pid");
}
- const Error error = m_debugged_process_sp->Detach();
+ const Status error = m_debugged_process_sp->Detach();
if (error.Fail()) {
if (log)
log->Printf("GDBRemoteCommunicationServerLLGS::%s failed to detach from "
@@ -3058,7 +3059,7 @@ GDBRemoteCommunicationServerLLGS::Handle_qFileLoadAddress(
packet.GetHexByteString(file_name);
lldb::addr_t file_load_address = LLDB_INVALID_ADDRESS;
- Error error =
+ Status error =
m_debugged_process_sp->GetFileLoadAddress(file_name, file_load_address);
if (error.Fail())
return SendErrorResponse(69);
@@ -3098,7 +3099,7 @@ GDBRemoteCommunicationServerLLGS::Handle_QPassSignals(
if (!m_debugged_process_sp)
return SendErrorResponse(68);
- Error error = m_debugged_process_sp->IgnoreSignals(signals);
+ Status error = m_debugged_process_sp->IgnoreSignals(signals);
if (error.Fail())
return SendErrorResponse(69);
@@ -3112,7 +3113,7 @@ void GDBRemoteCommunicationServerLLGS::MaybeCloseInferiorTerminalConnection() {
if (m_stdio_communication.IsConnected()) {
auto connection = m_stdio_communication.GetConnection();
if (connection) {
- Error error;
+ Status error;
connection->Disconnect(&error);
if (error.Success()) {
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
index a47927e1c640..ebda9a911d3c 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
@@ -51,10 +51,10 @@ public:
/// The number of elements in the args array of cstring pointers.
///
/// @return
- /// An Error object indicating the success or failure of making
+ /// An Status object indicating the success or failure of making
/// the setting.
//------------------------------------------------------------------
- Error SetLaunchArguments(const char *const args[], int argc);
+ Status SetLaunchArguments(const char *const args[], int argc);
//------------------------------------------------------------------
/// Specify the launch flags for the process.
@@ -63,10 +63,10 @@ public:
/// The launch flags to use when launching this process.
///
/// @return
- /// An Error object indicating the success or failure of making
+ /// An Status object indicating the success or failure of making
/// the setting.
//------------------------------------------------------------------
- Error SetLaunchFlags(unsigned int launch_flags);
+ Status SetLaunchFlags(unsigned int launch_flags);
//------------------------------------------------------------------
/// Launch a process with the current launch settings.
@@ -76,10 +76,10 @@ public:
/// with all the information for a child process to be launched.
///
/// @return
- /// An Error object indicating the success or failure of the
+ /// An Status object indicating the success or failure of the
/// launch.
//------------------------------------------------------------------
- Error LaunchProcess() override;
+ Status LaunchProcess() override;
//------------------------------------------------------------------
/// Attach to a process.
@@ -88,10 +88,10 @@ public:
/// configured Platform.
///
/// @return
- /// An Error object indicating the success or failure of the
+ /// An Status object indicating the success or failure of the
/// attach operation.
//------------------------------------------------------------------
- Error AttachToProcess(lldb::pid_t pid);
+ Status AttachToProcess(lldb::pid_t pid);
//------------------------------------------------------------------
// NativeProcessProtocol::NativeDelegate overrides
@@ -103,7 +103,7 @@ public:
void DidExec(NativeProcessProtocol *process) override;
- Error InitializeConnection(std::unique_ptr<Connection> &&connection);
+ Status InitializeConnection(std::unique_ptr<Connection> &&connection);
protected:
MainLoop &m_mainloop;
@@ -213,7 +213,7 @@ protected:
lldb::tid_t GetContinueThreadID() const { return m_continue_tid; }
- Error SetSTDIOFileDescriptor(int fd);
+ Status SetSTDIOFileDescriptor(int fd);
FileSpec FindModuleFile(const std::string &module_path,
const ArchSpec &arch) override;
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
index ae1c1adb5b45..73e3732df3ef 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
@@ -82,7 +82,7 @@ GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(
&GDBRemoteCommunicationServerPlatform::Handle_jSignalsInfo);
RegisterPacketHandler(StringExtractorGDBRemote::eServerPacketType_interrupt,
- [](StringExtractorGDBRemote packet, Error &error,
+ [](StringExtractorGDBRemote packet, Status &error,
bool &interrupt, bool &quit) {
error.SetErrorString("interrupt received");
interrupt = true;
@@ -95,7 +95,7 @@ GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(
//----------------------------------------------------------------------
GDBRemoteCommunicationServerPlatform::~GDBRemoteCommunicationServerPlatform() {}
-Error GDBRemoteCommunicationServerPlatform::LaunchGDBServer(
+Status GDBRemoteCommunicationServerPlatform::LaunchGDBServer(
const lldb_private::Args &args, std::string hostname, lldb::pid_t &pid,
uint16_t &port, std::string &socket_name) {
if (port == UINT16_MAX)
@@ -147,7 +147,7 @@ Error GDBRemoteCommunicationServerPlatform::LaunchGDBServer(
port_ptr = nullptr;
}
- Error error = StartDebugserverProcess(
+ Status error = StartDebugserverProcess(
url.str().c_str(), nullptr, debugserver_launch_info, port_ptr, &args, -1);
pid = debugserver_launch_info.GetProcessID();
@@ -192,7 +192,7 @@ GDBRemoteCommunicationServerPlatform::Handle_qLaunchGDBServer(
lldb::pid_t debugserver_pid = LLDB_INVALID_PROCESS_ID;
std::string socket_name;
- Error error =
+ Status error =
LaunchGDBServer(Args(), hostname, debugserver_pid, port, socket_name);
if (error.Fail()) {
if (log)
@@ -439,10 +439,10 @@ bool GDBRemoteCommunicationServerPlatform::DebugserverProcessReaped(
return true;
}
-Error GDBRemoteCommunicationServerPlatform::LaunchProcess() {
+Status GDBRemoteCommunicationServerPlatform::LaunchProcess() {
if (!m_process_launch_info.GetArguments().GetArgumentCount())
- return Error("%s: no process command line specified to launch",
- __FUNCTION__);
+ return Status("%s: no process command line specified to launch",
+ __FUNCTION__);
// specify the process monitor if not already set. This should
// generally be what happens since we need to reap started
@@ -454,7 +454,7 @@ Error GDBRemoteCommunicationServerPlatform::LaunchProcess() {
this, std::placeholders::_1),
false);
- Error error = Host::LaunchProcess(m_process_launch_info);
+ Status error = Host::LaunchProcess(m_process_launch_info);
if (!error.Success()) {
fprintf(stderr, "%s: failed to launch executable %s", __FUNCTION__,
m_process_launch_info.GetArguments().GetArgumentAtIndex(0));
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
index 472d86e3a15c..aed5106272d1 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
@@ -34,7 +34,7 @@ public:
~GDBRemoteCommunicationServerPlatform() override;
- Error LaunchProcess() override;
+ Status LaunchProcess() override;
// Set both ports to zero to let the platform automatically bind to
// a port chosen by the OS.
@@ -61,9 +61,9 @@ public:
void SetInferiorArguments(const lldb_private::Args &args);
- Error LaunchGDBServer(const lldb_private::Args &args, std::string hostname,
- lldb::pid_t &pid, uint16_t &port,
- std::string &socket_name);
+ Status LaunchGDBServer(const lldb_private::Args &args, std::string hostname,
+ lldb::pid_t &pid, uint16_t &port,
+ std::string &socket_name);
void SetPendingGdbServer(lldb::pid_t pid, uint16_t port,
const std::string &socket_name);
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
index ea4acc74893a..612c7144451e 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
@@ -95,8 +95,8 @@ bool GDBRemoteRegisterContext::ReadRegister(const RegisterInfo *reg_info,
// Read the register
if (ReadRegisterBytes(reg_info, m_reg_data)) {
const bool partial_data_ok = false;
- Error error(value.SetValueFromData(reg_info, m_reg_data,
- reg_info->byte_offset, partial_data_ok));
+ Status error(value.SetValueFromData(
+ reg_info, m_reg_data, reg_info->byte_offset, partial_data_ok));
return error.Success();
}
return false;
diff --git a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index c4ae5e36d9ad..64684c5963b3 100644
--- a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -97,8 +97,8 @@ namespace lldb {
// function and get the packet history dumped to a file.
void DumpProcessGDBRemotePacketHistory(void *p, const char *path) {
StreamFile strm;
- Error error(strm.GetFile().Open(path, File::eOpenOptionWrite |
- File::eOpenOptionCanCreate));
+ Status error(strm.GetFile().Open(path, File::eOpenOptionWrite |
+ File::eOpenOptionCanCreate));
if (error.Success())
((ProcessGDBRemote *)p)->GetGDBRemote().DumpHistory(strm);
}
@@ -324,7 +324,7 @@ bool ProcessGDBRemote::ParsePythonTargetDefinition(
const FileSpec &target_definition_fspec) {
ScriptInterpreter *interpreter =
GetTarget().GetDebugger().GetCommandInterpreter().GetScriptInterpreter();
- Error error;
+ Status error;
StructuredData::ObjectSP module_object_sp(
interpreter->LoadPluginModule(target_definition_fspec, error));
if (module_object_sp) {
@@ -639,23 +639,23 @@ void ProcessGDBRemote::BuildDynamicRegisterInfo(bool force) {
m_register_info.Finalize(GetTarget().GetArchitecture());
}
-Error ProcessGDBRemote::WillLaunch(Module *module) {
+Status ProcessGDBRemote::WillLaunch(Module *module) {
return WillLaunchOrAttach();
}
-Error ProcessGDBRemote::WillAttachToProcessWithID(lldb::pid_t pid) {
+Status ProcessGDBRemote::WillAttachToProcessWithID(lldb::pid_t pid) {
return WillLaunchOrAttach();
}
-Error ProcessGDBRemote::WillAttachToProcessWithName(const char *process_name,
- bool wait_for_launch) {
+Status ProcessGDBRemote::WillAttachToProcessWithName(const char *process_name,
+ bool wait_for_launch) {
return WillLaunchOrAttach();
}
-Error ProcessGDBRemote::DoConnectRemote(Stream *strm,
- llvm::StringRef remote_url) {
+Status ProcessGDBRemote::DoConnectRemote(Stream *strm,
+ llvm::StringRef remote_url) {
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
- Error error(WillLaunchOrAttach());
+ Status error(WillLaunchOrAttach());
if (error.Fail())
return error;
@@ -744,8 +744,8 @@ Error ProcessGDBRemote::DoConnectRemote(Stream *strm,
return error;
}
-Error ProcessGDBRemote::WillLaunchOrAttach() {
- Error error;
+Status ProcessGDBRemote::WillLaunchOrAttach() {
+ Status error;
m_stdio_communication.Clear();
return error;
}
@@ -753,10 +753,10 @@ Error ProcessGDBRemote::WillLaunchOrAttach() {
//----------------------------------------------------------------------
// Process Control
//----------------------------------------------------------------------
-Error ProcessGDBRemote::DoLaunch(Module *exe_module,
- ProcessLaunchInfo &launch_info) {
+Status ProcessGDBRemote::DoLaunch(Module *exe_module,
+ ProcessLaunchInfo &launch_info) {
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
- Error error;
+ Status error;
if (log)
log->Printf("ProcessGDBRemote::%s() entered", __FUNCTION__);
@@ -965,8 +965,8 @@ Error ProcessGDBRemote::DoLaunch(Module *exe_module,
return error;
}
-Error ProcessGDBRemote::ConnectToDebugserver(llvm::StringRef connect_url) {
- Error error;
+Status ProcessGDBRemote::ConnectToDebugserver(llvm::StringRef connect_url) {
+ Status error;
// Only connect if we have a valid connect URL
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
@@ -1169,10 +1169,10 @@ void ProcessGDBRemote::DidLaunch() {
DidLaunchOrAttach(process_arch);
}
-Error ProcessGDBRemote::DoAttachToProcessWithID(
+Status ProcessGDBRemote::DoAttachToProcessWithID(
lldb::pid_t attach_pid, const ProcessAttachInfo &attach_info) {
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
- Error error;
+ Status error;
if (log)
log->Printf("ProcessGDBRemote::%s()", __FUNCTION__);
@@ -1197,9 +1197,9 @@ Error ProcessGDBRemote::DoAttachToProcessWithID(
return error;
}
-Error ProcessGDBRemote::DoAttachToProcessWithName(
+Status ProcessGDBRemote::DoAttachToProcessWithName(
const char *process_name, const ProcessAttachInfo &attach_info) {
- Error error;
+ Status error;
// Clear out and clean up from any current state
Clear();
@@ -1247,18 +1247,18 @@ void ProcessGDBRemote::DidAttach(ArchSpec &process_arch) {
DidLaunchOrAttach(process_arch);
}
-Error ProcessGDBRemote::WillResume() {
+Status ProcessGDBRemote::WillResume() {
m_continue_c_tids.clear();
m_continue_C_tids.clear();
m_continue_s_tids.clear();
m_continue_S_tids.clear();
m_jstopinfo_sp.reset();
m_jthreadsinfo_sp.reset();
- return Error();
+ return Status();
}
-Error ProcessGDBRemote::DoResume() {
- Error error;
+Status ProcessGDBRemote::DoResume() {
+ Status error;
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
if (log)
log->Printf("ProcessGDBRemote::Resume()");
@@ -2113,9 +2113,9 @@ ProcessGDBRemote::SetThreadStopInfo(StructuredData::Dictionary *thread_dict) {
if (mem_cache_dict->GetValueForKeyAsInteger<lldb::addr_t>(
"address", mem_cache_addr)) {
if (mem_cache_addr != LLDB_INVALID_ADDRESS) {
- StringExtractor bytes;
- if (mem_cache_dict->GetValueForKeyAsString(
- "bytes", bytes.GetStringRef())) {
+ llvm::StringRef str;
+ if (mem_cache_dict->GetValueForKeyAsString("bytes", str)) {
+ StringExtractor bytes(str);
bytes.SetFilePos(0);
const size_t byte_size = bytes.GetStringRef().size() / 2;
@@ -2400,8 +2400,8 @@ void ProcessGDBRemote::RefreshStateAfterStop() {
m_thread_list_real.RefreshStateAfterStop();
}
-Error ProcessGDBRemote::DoHalt(bool &caused_stop) {
- Error error;
+Status ProcessGDBRemote::DoHalt(bool &caused_stop) {
+ Status error;
if (m_public_state.GetValue() == eStateAttaching) {
// We are being asked to halt during an attach. We need to just close
@@ -2412,8 +2412,8 @@ Error ProcessGDBRemote::DoHalt(bool &caused_stop) {
return error;
}
-Error ProcessGDBRemote::DoDetach(bool keep_stopped) {
- Error error;
+Status ProcessGDBRemote::DoDetach(bool keep_stopped) {
+ Status error;
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
if (log)
log->Printf("ProcessGDBRemote::DoDetach(keep_stopped: %i)", keep_stopped);
@@ -2441,8 +2441,8 @@ Error ProcessGDBRemote::DoDetach(bool keep_stopped) {
return error;
}
-Error ProcessGDBRemote::DoDestroy() {
- Error error;
+Status ProcessGDBRemote::DoDestroy() {
+ Status error;
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
if (log)
log->Printf("ProcessGDBRemote::DoDestroy()");
@@ -2722,7 +2722,7 @@ void ProcessGDBRemote::WillPublicStop() {
// Process Memory
//------------------------------------------------------------------
size_t ProcessGDBRemote::DoReadMemory(addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
GetMaxMemorySize();
bool binary_memory_read = m_gdb_comm.GetxPacketSupported();
// M and m packets take 2 bytes for 1 byte of memory
@@ -2781,7 +2781,7 @@ size_t ProcessGDBRemote::DoReadMemory(addr_t addr, void *buf, size_t size,
}
size_t ProcessGDBRemote::DoWriteMemory(addr_t addr, const void *buf,
- size_t size, Error &error) {
+ size_t size, Status &error) {
GetMaxMemorySize();
// M and m packets take 2 bytes for 1 byte of memory
size_t max_memory_size = m_max_memory_size / 2;
@@ -2822,7 +2822,7 @@ size_t ProcessGDBRemote::DoWriteMemory(addr_t addr, const void *buf,
lldb::addr_t ProcessGDBRemote::DoAllocateMemory(size_t size,
uint32_t permissions,
- Error &error) {
+ Status &error) {
Log *log(
GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_EXPRESSIONS));
addr_t allocated_addr = LLDB_INVALID_ADDRESS;
@@ -2866,27 +2866,27 @@ lldb::addr_t ProcessGDBRemote::DoAllocateMemory(size_t size,
return allocated_addr;
}
-Error ProcessGDBRemote::GetMemoryRegionInfo(addr_t load_addr,
- MemoryRegionInfo &region_info) {
+Status ProcessGDBRemote::GetMemoryRegionInfo(addr_t load_addr,
+ MemoryRegionInfo &region_info) {
- Error error(m_gdb_comm.GetMemoryRegionInfo(load_addr, region_info));
+ Status error(m_gdb_comm.GetMemoryRegionInfo(load_addr, region_info));
return error;
}
-Error ProcessGDBRemote::GetWatchpointSupportInfo(uint32_t &num) {
+Status ProcessGDBRemote::GetWatchpointSupportInfo(uint32_t &num) {
- Error error(m_gdb_comm.GetWatchpointSupportInfo(num));
+ Status error(m_gdb_comm.GetWatchpointSupportInfo(num));
return error;
}
-Error ProcessGDBRemote::GetWatchpointSupportInfo(uint32_t &num, bool &after) {
- Error error(m_gdb_comm.GetWatchpointSupportInfo(
+Status ProcessGDBRemote::GetWatchpointSupportInfo(uint32_t &num, bool &after) {
+ Status error(m_gdb_comm.GetWatchpointSupportInfo(
num, after, GetTarget().GetArchitecture()));
return error;
}
-Error ProcessGDBRemote::DoDeallocateMemory(lldb::addr_t addr) {
- Error error;
+Status ProcessGDBRemote::DoDeallocateMemory(lldb::addr_t addr) {
+ Status error;
LazyBool supported = m_gdb_comm.SupportsAllocDeallocMemory();
switch (supported) {
@@ -2924,7 +2924,7 @@ Error ProcessGDBRemote::DoDeallocateMemory(lldb::addr_t addr) {
// Process STDIO
//------------------------------------------------------------------
size_t ProcessGDBRemote::PutSTDIN(const char *src, size_t src_len,
- Error &error) {
+ Status &error) {
if (m_stdio_communication.IsConnected()) {
ConnectionStatus status;
m_stdio_communication.Write(src, src_len, status, NULL);
@@ -2934,8 +2934,8 @@ size_t ProcessGDBRemote::PutSTDIN(const char *src, size_t src_len,
return 0;
}
-Error ProcessGDBRemote::EnableBreakpointSite(BreakpointSite *bp_site) {
- Error error;
+Status ProcessGDBRemote::EnableBreakpointSite(BreakpointSite *bp_site) {
+ Status error;
assert(bp_site != NULL);
// Get logging info
@@ -3072,8 +3072,8 @@ Error ProcessGDBRemote::EnableBreakpointSite(BreakpointSite *bp_site) {
return EnableSoftwareBreakpoint(bp_site);
}
-Error ProcessGDBRemote::DisableBreakpointSite(BreakpointSite *bp_site) {
- Error error;
+Status ProcessGDBRemote::DisableBreakpointSite(BreakpointSite *bp_site) {
+ Status error;
assert(bp_site != NULL);
addr_t addr = bp_site->GetLoadAddress();
user_id_t site_id = bp_site->GetID();
@@ -3141,8 +3141,8 @@ static GDBStoppointType GetGDBStoppointType(Watchpoint *wp) {
return eWatchpointWrite;
}
-Error ProcessGDBRemote::EnableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessGDBRemote::EnableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
if (wp) {
user_id_t watchID = wp->GetID();
addr_t addr = wp->GetLoadAddress();
@@ -3178,8 +3178,8 @@ Error ProcessGDBRemote::EnableWatchpoint(Watchpoint *wp, bool notify) {
return error;
}
-Error ProcessGDBRemote::DisableWatchpoint(Watchpoint *wp, bool notify) {
- Error error;
+Status ProcessGDBRemote::DisableWatchpoint(Watchpoint *wp, bool notify) {
+ Status error;
if (wp) {
user_id_t watchID = wp->GetID();
@@ -3231,8 +3231,8 @@ void ProcessGDBRemote::Clear() {
m_thread_list.Clear();
}
-Error ProcessGDBRemote::DoSignal(int signo) {
- Error error;
+Status ProcessGDBRemote::DoSignal(int signo) {
+ Status error;
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
if (log)
log->Printf("ProcessGDBRemote::DoSignal (signal = %d)", signo);
@@ -3242,15 +3242,15 @@ Error ProcessGDBRemote::DoSignal(int signo) {
return error;
}
-Error ProcessGDBRemote::EstablishConnectionIfNeeded(
- const ProcessInfo &process_info) {
+Status
+ProcessGDBRemote::EstablishConnectionIfNeeded(const ProcessInfo &process_info) {
// Make sure we aren't already connected?
if (m_gdb_comm.IsConnected())
- return Error();
+ return Status();
PlatformSP platform_sp(GetTarget().GetPlatform());
if (platform_sp && !platform_sp->IsHost())
- return Error("Lost debug server connection");
+ return Status("Lost debug server connection");
auto error = LaunchAndConnectToDebugserver(process_info);
if (error.Fail()) {
@@ -3277,11 +3277,11 @@ static bool SetCloexecFlag(int fd) {
}
#endif
-Error ProcessGDBRemote::LaunchAndConnectToDebugserver(
+Status ProcessGDBRemote::LaunchAndConnectToDebugserver(
const ProcessInfo &process_info) {
using namespace std::placeholders; // For _1, _2, etc.
- Error error;
+ Status error;
if (m_debugserver_pid == LLDB_INVALID_PROCESS_ID) {
// If we locate debugserver, keep that located version around
static FileSpec g_debugserver_file_spec;
@@ -3739,30 +3739,30 @@ bool ProcessGDBRemote::NewThreadNotifyBreakpointHit(
return false;
}
-Error ProcessGDBRemote::UpdateAutomaticSignalFiltering() {
+Status ProcessGDBRemote::UpdateAutomaticSignalFiltering() {
Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
LLDB_LOG(log, "Check if need to update ignored signals");
// QPassSignals package is not supported by the server,
// there is no way we can ignore any signals on server side.
if (!m_gdb_comm.GetQPassSignalsSupported())
- return Error();
+ return Status();
// No signals, nothing to send.
if (m_unix_signals_sp == nullptr)
- return Error();
+ return Status();
// Signals' version hasn't changed, no need to send anything.
uint64_t new_signals_version = m_unix_signals_sp->GetVersion();
if (new_signals_version == m_last_signals_version) {
LLDB_LOG(log, "Signals' version hasn't changed. version={0}",
m_last_signals_version);
- return Error();
+ return Status();
}
auto signals_to_ignore =
m_unix_signals_sp->GetFilteredSignals(false, false, false);
- Error error = m_gdb_comm.SendSignalsToIgnore(signals_to_ignore);
+ Status error = m_gdb_comm.SendSignalsToIgnore(signals_to_ignore);
LLDB_LOG(log,
"Signals' version changed. old version={0}, new version={1}, "
@@ -3820,11 +3820,11 @@ DynamicLoader *ProcessGDBRemote::GetDynamicLoader() {
return m_dyld_ap.get();
}
-Error ProcessGDBRemote::SendEventData(const char *data) {
+Status ProcessGDBRemote::SendEventData(const char *data) {
int return_value;
bool was_supported;
- Error error;
+ Status error;
return_value = m_gdb_comm.SendLaunchEventDataPacket(data, &was_supported);
if (return_value != 0) {
@@ -3995,7 +3995,7 @@ StructuredData::ObjectSP ProcessGDBRemote::GetSharedCacheInfo() {
return object_sp;
}
-Error ProcessGDBRemote::ConfigureStructuredData(
+Status ProcessGDBRemote::ConfigureStructuredData(
const ConstString &type_name, const StructuredData::ObjectSP &config_sp) {
return m_gdb_comm.ConfigureRemoteStructuredData(type_name, config_sp);
}
@@ -4332,7 +4332,7 @@ bool ProcessGDBRemote::GetGDBServerRegisterInfo(ArchSpec &arch_to_use) {
// request the target xml file
std::string raw;
- lldb_private::Error lldberr;
+ lldb_private::Status lldberr;
if (!comm.ReadExtFeature(ConstString("features"), ConstString("target.xml"),
raw, lldberr)) {
return false;
@@ -4424,10 +4424,10 @@ bool ProcessGDBRemote::GetGDBServerRegisterInfo(ArchSpec &arch_to_use) {
return m_register_info.GetNumRegisters() > 0;
}
-Error ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
+Status ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
// Make sure LLDB has an XML parser it can use first
if (!XMLDocument::XMLEnabled())
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
Log *log = GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PROCESS);
if (log)
@@ -4441,11 +4441,11 @@ Error ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
// request the loaded library list
std::string raw;
- lldb_private::Error lldberr;
+ lldb_private::Status lldberr;
if (!comm.ReadExtFeature(ConstString("libraries-svr4"), ConstString(""),
raw, lldberr))
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
// parse the xml file in memory
if (log)
@@ -4453,11 +4453,11 @@ Error ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
XMLDocument doc;
if (!doc.ParseMemory(raw.c_str(), raw.size(), "noname.xml"))
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
XMLNode root_element = doc.GetRootElement("library-list-svr4");
if (!root_element)
- return Error();
+ return Status();
// main link map structure
llvm::StringRef main_lm = root_element.GetAttributeValue("main-lm");
@@ -4528,22 +4528,22 @@ Error ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
// request the loaded library list
std::string raw;
- lldb_private::Error lldberr;
+ lldb_private::Status lldberr;
if (!comm.ReadExtFeature(ConstString("libraries"), ConstString(""), raw,
lldberr))
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
if (log)
log->Printf("parsing: %s", raw.c_str());
XMLDocument doc;
if (!doc.ParseMemory(raw.c_str(), raw.size(), "noname.xml"))
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
XMLNode root_element = doc.GetRootElement("library-list");
if (!root_element)
- return Error();
+ return Status();
root_element.ForEachChildElementWithName(
"library", [log, &list](const XMLNode &library) -> bool {
@@ -4584,10 +4584,10 @@ Error ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
log->Printf("found %" PRId32 " modules in total",
(int)list.m_list.size());
} else {
- return Error(0, ErrorType::eErrorTypeGeneric);
+ return Status(0, ErrorType::eErrorTypeGeneric);
}
- return Error();
+ return Status();
}
lldb::ModuleSP ProcessGDBRemote::LoadModuleAtAddress(const FileSpec &file,
@@ -4686,15 +4686,15 @@ size_t ProcessGDBRemote::LoadModules() {
return LoadModules(module_list);
}
-Error ProcessGDBRemote::GetFileLoadAddress(const FileSpec &file,
- bool &is_loaded,
- lldb::addr_t &load_addr) {
+Status ProcessGDBRemote::GetFileLoadAddress(const FileSpec &file,
+ bool &is_loaded,
+ lldb::addr_t &load_addr) {
is_loaded = false;
load_addr = LLDB_INVALID_ADDRESS;
std::string file_path = file.GetPath(false);
if (file_path.empty())
- return Error("Empty file name specified");
+ return Status("Empty file name specified");
StreamString packet;
packet.PutCString("qFileLoadAddress:");
@@ -4704,27 +4704,28 @@ Error ProcessGDBRemote::GetFileLoadAddress(const FileSpec &file,
if (m_gdb_comm.SendPacketAndWaitForResponse(packet.GetString(), response,
false) !=
GDBRemoteCommunication::PacketResult::Success)
- return Error("Sending qFileLoadAddress packet failed");
+ return Status("Sending qFileLoadAddress packet failed");
if (response.IsErrorResponse()) {
if (response.GetError() == 1) {
// The file is not loaded into the inferior
is_loaded = false;
load_addr = LLDB_INVALID_ADDRESS;
- return Error();
+ return Status();
}
- return Error(
+ return Status(
"Fetching file load address from remote server returned an error");
}
if (response.IsNormalResponse()) {
is_loaded = true;
load_addr = response.GetHexMaxU64(false, LLDB_INVALID_ADDRESS);
- return Error();
+ return Status();
}
- return Error("Unknown error happened during sending the load address packet");
+ return Status(
+ "Unknown error happened during sending the load address packet");
}
void ProcessGDBRemote::ModulesDidLoad(ModuleList &module_list) {
diff --git a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
index a1794d0f5050..60f0464f86bb 100644
--- a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+++ b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
@@ -30,7 +30,7 @@
#include "lldb/Target/Process.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/StringExtractor.h"
#include "lldb/Utility/StringList.h"
@@ -78,25 +78,25 @@ public:
//------------------------------------------------------------------
// Creating a new process, or attaching to an existing one
//------------------------------------------------------------------
- Error WillLaunch(Module *module) override;
+ Status WillLaunch(Module *module) override;
- Error DoLaunch(Module *exe_module, ProcessLaunchInfo &launch_info) override;
+ Status DoLaunch(Module *exe_module, ProcessLaunchInfo &launch_info) override;
void DidLaunch() override;
- Error WillAttachToProcessWithID(lldb::pid_t pid) override;
+ Status WillAttachToProcessWithID(lldb::pid_t pid) override;
- Error WillAttachToProcessWithName(const char *process_name,
- bool wait_for_launch) override;
+ Status WillAttachToProcessWithName(const char *process_name,
+ bool wait_for_launch) override;
- Error DoConnectRemote(Stream *strm, llvm::StringRef remote_url) override;
+ Status DoConnectRemote(Stream *strm, llvm::StringRef remote_url) override;
- Error WillLaunchOrAttach();
+ Status WillLaunchOrAttach();
- Error DoAttachToProcessWithID(lldb::pid_t pid,
- const ProcessAttachInfo &attach_info) override;
+ Status DoAttachToProcessWithID(lldb::pid_t pid,
+ const ProcessAttachInfo &attach_info) override;
- Error
+ Status
DoAttachToProcessWithName(const char *process_name,
const ProcessAttachInfo &attach_info) override;
@@ -112,19 +112,19 @@ public:
//------------------------------------------------------------------
// Process Control
//------------------------------------------------------------------
- Error WillResume() override;
+ Status WillResume() override;
- Error DoResume() override;
+ Status DoResume() override;
- Error DoHalt(bool &caused_stop) override;
+ Status DoHalt(bool &caused_stop) override;
- Error DoDetach(bool keep_stopped) override;
+ Status DoDetach(bool keep_stopped) override;
bool DetachRequiresHalt() override { return true; }
- Error DoSignal(int signal) override;
+ Status DoSignal(int signal) override;
- Error DoDestroy() override;
+ Status DoDestroy() override;
void RefreshStateAfterStop() override;
@@ -143,41 +143,41 @@ public:
// Process Memory
//------------------------------------------------------------------
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) override;
+ Status &error) override;
size_t DoWriteMemory(lldb::addr_t addr, const void *buf, size_t size,
- Error &error) override;
+ Status &error) override;
lldb::addr_t DoAllocateMemory(size_t size, uint32_t permissions,
- Error &error) override;
+ Status &error) override;
- Error GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &region_info) override;
+ Status GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &region_info) override;
- Error DoDeallocateMemory(lldb::addr_t ptr) override;
+ Status DoDeallocateMemory(lldb::addr_t ptr) override;
//------------------------------------------------------------------
// Process STDIO
//------------------------------------------------------------------
- size_t PutSTDIN(const char *buf, size_t buf_size, Error &error) override;
+ size_t PutSTDIN(const char *buf, size_t buf_size, Status &error) override;
//----------------------------------------------------------------------
// Process Breakpoints
//----------------------------------------------------------------------
- Error EnableBreakpointSite(BreakpointSite *bp_site) override;
+ Status EnableBreakpointSite(BreakpointSite *bp_site) override;
- Error DisableBreakpointSite(BreakpointSite *bp_site) override;
+ Status DisableBreakpointSite(BreakpointSite *bp_site) override;
//----------------------------------------------------------------------
// Process Watchpoints
//----------------------------------------------------------------------
- Error EnableWatchpoint(Watchpoint *wp, bool notify = true) override;
+ Status EnableWatchpoint(Watchpoint *wp, bool notify = true) override;
- Error DisableWatchpoint(Watchpoint *wp, bool notify = true) override;
+ Status DisableWatchpoint(Watchpoint *wp, bool notify = true) override;
- Error GetWatchpointSupportInfo(uint32_t &num) override;
+ Status GetWatchpointSupportInfo(uint32_t &num) override;
- Error GetWatchpointSupportInfo(uint32_t &num, bool &after) override;
+ Status GetWatchpointSupportInfo(uint32_t &num, bool &after) override;
bool StartNoticingNewThreads() override;
@@ -185,7 +185,7 @@ public:
GDBRemoteCommunicationClient &GetGDBRemote() { return m_gdb_comm; }
- Error SendEventData(const char *data) override;
+ Status SendEventData(const char *data) override;
//----------------------------------------------------------------------
// Override DidExit so we can disconnect from the remote GDB server
@@ -207,8 +207,8 @@ public:
size_t LoadModules() override;
- Error GetFileLoadAddress(const FileSpec &file, bool &is_loaded,
- lldb::addr_t &load_addr) override;
+ Status GetFileLoadAddress(const FileSpec &file, bool &is_loaded,
+ lldb::addr_t &load_addr) override;
void ModulesDidLoad(ModuleList &module_list) override;
@@ -216,7 +216,7 @@ public:
GetLoadedDynamicLibrariesInfos(lldb::addr_t image_list_address,
lldb::addr_t image_count) override;
- Error
+ Status
ConfigureStructuredData(const ConstString &type_name,
const StructuredData::ObjectSP &config_sp) override;
@@ -315,9 +315,9 @@ protected:
bool UpdateThreadList(ThreadList &old_thread_list,
ThreadList &new_thread_list) override;
- Error EstablishConnectionIfNeeded(const ProcessInfo &process_info);
+ Status EstablishConnectionIfNeeded(const ProcessInfo &process_info);
- Error LaunchAndConnectToDebugserver(const ProcessInfo &process_info);
+ Status LaunchAndConnectToDebugserver(const ProcessInfo &process_info);
void KillDebugserverProcess();
@@ -379,7 +379,7 @@ protected:
void DidLaunchOrAttach(ArchSpec &process_arch);
- Error ConnectToDebugserver(llvm::StringRef host_port);
+ Status ConnectToDebugserver(llvm::StringRef host_port);
const char *GetDispatchQueueNameForThread(lldb::addr_t thread_dispatch_qaddr,
std::string &dispatch_queue_name);
@@ -390,14 +390,14 @@ protected:
bool GetGDBServerRegisterInfo(ArchSpec &arch);
// Query remote GDBServer for a detailed loaded library list
- Error GetLoadedModuleList(LoadedModuleInfoList &);
+ Status GetLoadedModuleList(LoadedModuleInfoList &);
lldb::ModuleSP LoadModuleAtAddress(const FileSpec &file,
lldb::addr_t link_map,
lldb::addr_t base_addr,
bool value_is_offset);
- Error UpdateAutomaticSignalFiltering() override;
+ Status UpdateAutomaticSignalFiltering() override;
private:
//------------------------------------------------------------------
diff --git a/source/Plugins/Process/mach-core/ProcessMachCore.cpp b/source/Plugins/Process/mach-core/ProcessMachCore.cpp
index 3b636b9795fd..a6178500dfc5 100644
--- a/source/Plugins/Process/mach-core/ProcessMachCore.cpp
+++ b/source/Plugins/Process/mach-core/ProcessMachCore.cpp
@@ -97,8 +97,8 @@ bool ProcessMachCore::CanDebug(lldb::TargetSP target_sp,
// ModuleSpecList::FindMatchingModuleSpec
// enforces a strict arch mach.
ModuleSpec core_module_spec(m_core_file);
- Error error(ModuleList::GetSharedModule(core_module_spec, m_core_module_sp,
- NULL, NULL, NULL));
+ Status error(ModuleList::GetSharedModule(core_module_spec, m_core_module_sp,
+ NULL, NULL, NULL));
if (m_core_module_sp) {
ObjectFile *core_objfile = m_core_module_sp->GetObjectFile();
@@ -143,7 +143,7 @@ bool ProcessMachCore::GetDynamicLoaderAddress(lldb::addr_t addr) {
Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER |
LIBLLDB_LOG_PROCESS));
llvm::MachO::mach_header header;
- Error error;
+ Status error;
if (DoReadMemory(addr, &header, sizeof(header), error) != sizeof(header))
return false;
if (header.magic == llvm::MachO::MH_CIGAM ||
@@ -200,10 +200,10 @@ bool ProcessMachCore::GetDynamicLoaderAddress(lldb::addr_t addr) {
//----------------------------------------------------------------------
// Process Control
//----------------------------------------------------------------------
-Error ProcessMachCore::DoLoadCore() {
+Status ProcessMachCore::DoLoadCore() {
Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER |
LIBLLDB_LOG_PROCESS));
- Error error;
+ Status error;
if (!m_core_module_sp) {
error.SetErrorString("invalid core module");
return error;
@@ -514,7 +514,7 @@ void ProcessMachCore::RefreshStateAfterStop() {
// SetThreadStopInfo (m_last_stop_packet);
}
-Error ProcessMachCore::DoDestroy() { return Error(); }
+Status ProcessMachCore::DoDestroy() { return Status(); }
//------------------------------------------------------------------
// Process Queries
@@ -528,14 +528,14 @@ bool ProcessMachCore::WarnBeforeDetach() const { return false; }
// Process Memory
//------------------------------------------------------------------
size_t ProcessMachCore::ReadMemory(addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
// Don't allow the caching that lldb_private::Process::ReadMemory does
// since in core files we have it all cached our our core file anyway.
return DoReadMemory(addr, buf, size, error);
}
size_t ProcessMachCore::DoReadMemory(addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
ObjectFile *core_objfile = m_core_module_sp->GetObjectFile();
size_t bytes_read = 0;
@@ -589,8 +589,8 @@ size_t ProcessMachCore::DoReadMemory(addr_t addr, void *buf, size_t size,
return bytes_read;
}
-Error ProcessMachCore::GetMemoryRegionInfo(addr_t load_addr,
- MemoryRegionInfo &region_info) {
+Status ProcessMachCore::GetMemoryRegionInfo(addr_t load_addr,
+ MemoryRegionInfo &region_info) {
region_info.Clear();
const VMRangeToPermissions::Entry *permission_entry =
m_core_range_infos.FindEntryThatContainsOrFollows(load_addr);
@@ -617,7 +617,7 @@ Error ProcessMachCore::GetMemoryRegionInfo(addr_t load_addr,
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
}
- return Error();
+ return Status();
}
region_info.GetRange().SetRangeBase(load_addr);
@@ -626,7 +626,7 @@ Error ProcessMachCore::GetMemoryRegionInfo(addr_t load_addr,
region_info.SetWritable(MemoryRegionInfo::eNo);
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
- return Error();
+ return Status();
}
void ProcessMachCore::Clear() { m_thread_list.Clear(); }
diff --git a/source/Plugins/Process/mach-core/ProcessMachCore.h b/source/Plugins/Process/mach-core/ProcessMachCore.h
index 99bb4a60ff39..101df6b79115 100644
--- a/source/Plugins/Process/mach-core/ProcessMachCore.h
+++ b/source/Plugins/Process/mach-core/ProcessMachCore.h
@@ -19,7 +19,7 @@
// Project includes
#include "lldb/Target/Process.h"
#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
class ThreadKDP;
@@ -54,7 +54,7 @@ public:
//------------------------------------------------------------------
// Creating a new process, or attaching to an existing one
//------------------------------------------------------------------
- lldb_private::Error DoLoadCore() override;
+ lldb_private::Status DoLoadCore() override;
lldb_private::DynamicLoader *GetDynamicLoader() override;
@@ -68,7 +68,7 @@ public:
//------------------------------------------------------------------
// Process Control
//------------------------------------------------------------------
- lldb_private::Error DoDestroy() override;
+ lldb_private::Status DoDestroy() override;
void RefreshStateAfterStop() override;
@@ -83,12 +83,12 @@ public:
// Process Memory
//------------------------------------------------------------------
size_t ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- lldb_private::Error &error) override;
+ lldb_private::Status &error) override;
- lldb_private::Error
+ lldb_private::Status
GetMemoryRegionInfo(lldb::addr_t load_addr,
lldb_private::MemoryRegionInfo &region_info) override;
diff --git a/source/Plugins/Process/minidump/MinidumpParser.cpp b/source/Plugins/Process/minidump/MinidumpParser.cpp
index 37b3709c09c1..36350fdb6398 100644
--- a/source/Plugins/Process/minidump/MinidumpParser.cpp
+++ b/source/Plugins/Process/minidump/MinidumpParser.cpp
@@ -45,7 +45,7 @@ MinidumpParser::Create(const lldb::DataBufferSP &data_buf_sp) {
}
const MinidumpDirectory *directory = nullptr;
- Error error;
+ Status error;
llvm::ArrayRef<uint8_t> directory_data(
data_buf_sp->GetBytes() + directory_list_offset,
sizeof(MinidumpDirectory) * header->streams_count);
@@ -126,7 +126,7 @@ MinidumpParser::GetThreadContextWow64(const MinidumpThread &td) {
return {};
const TEB64 *wow64teb;
- Error error = consumeObject(teb_mem, wow64teb);
+ Status error = consumeObject(teb_mem, wow64teb);
if (error.Fail())
return {};
diff --git a/source/Plugins/Process/minidump/MinidumpParser.h b/source/Plugins/Process/minidump/MinidumpParser.h
index 189aeb3d64e6..df6deb482afd 100644
--- a/source/Plugins/Process/minidump/MinidumpParser.h
+++ b/source/Plugins/Process/minidump/MinidumpParser.h
@@ -17,7 +17,7 @@
// Other libraries and framework includes
#include "lldb/Core/ArchSpec.h"
#include "lldb/Utility/DataBuffer.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
diff --git a/source/Plugins/Process/minidump/MinidumpTypes.cpp b/source/Plugins/Process/minidump/MinidumpTypes.cpp
index 863d124a7ccc..24ce3f94c094 100644
--- a/source/Plugins/Process/minidump/MinidumpTypes.cpp
+++ b/source/Plugins/Process/minidump/MinidumpTypes.cpp
@@ -19,7 +19,7 @@ using namespace minidump;
const MinidumpHeader *MinidumpHeader::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpHeader *header = nullptr;
- Error error = consumeObject(data, header);
+ Status error = consumeObject(data, header);
const MinidumpHeaderConstants signature =
static_cast<const MinidumpHeaderConstants>(
@@ -45,7 +45,7 @@ lldb_private::minidump::parseMinidumpString(llvm::ArrayRef<uint8_t> &data) {
std::string result;
const uint32_t *source_length;
- Error error = consumeObject(data, source_length);
+ Status error = consumeObject(data, source_length);
if (error.Fail() || *source_length > data.size() || *source_length % 2 != 0)
return llvm::None;
@@ -71,7 +71,7 @@ lldb_private::minidump::parseMinidumpString(llvm::ArrayRef<uint8_t> &data) {
// MinidumpThread
const MinidumpThread *MinidumpThread::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpThread *thread = nullptr;
- Error error = consumeObject(data, thread);
+ Status error = consumeObject(data, thread);
if (error.Fail())
return nullptr;
@@ -81,7 +81,7 @@ const MinidumpThread *MinidumpThread::Parse(llvm::ArrayRef<uint8_t> &data) {
llvm::ArrayRef<MinidumpThread>
MinidumpThread::ParseThreadList(llvm::ArrayRef<uint8_t> &data) {
const llvm::support::ulittle32_t *thread_count;
- Error error = consumeObject(data, thread_count);
+ Status error = consumeObject(data, thread_count);
if (error.Fail() || *thread_count * sizeof(MinidumpThread) > data.size())
return {};
@@ -93,7 +93,7 @@ MinidumpThread::ParseThreadList(llvm::ArrayRef<uint8_t> &data) {
const MinidumpSystemInfo *
MinidumpSystemInfo::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpSystemInfo *system_info;
- Error error = consumeObject(data, system_info);
+ Status error = consumeObject(data, system_info);
if (error.Fail())
return nullptr;
@@ -103,7 +103,7 @@ MinidumpSystemInfo::Parse(llvm::ArrayRef<uint8_t> &data) {
// MinidumpMiscInfo
const MinidumpMiscInfo *MinidumpMiscInfo::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpMiscInfo *misc_info;
- Error error = consumeObject(data, misc_info);
+ Status error = consumeObject(data, misc_info);
if (error.Fail())
return nullptr;
@@ -147,7 +147,7 @@ lldb::pid_t LinuxProcStatus::GetPid() const { return pid; }
// Module stuff
const MinidumpModule *MinidumpModule::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpModule *module = nullptr;
- Error error = consumeObject(data, module);
+ Status error = consumeObject(data, module);
if (error.Fail())
return nullptr;
@@ -158,7 +158,7 @@ llvm::ArrayRef<MinidumpModule>
MinidumpModule::ParseModuleList(llvm::ArrayRef<uint8_t> &data) {
const llvm::support::ulittle32_t *modules_count;
- Error error = consumeObject(data, modules_count);
+ Status error = consumeObject(data, modules_count);
if (error.Fail() || *modules_count * sizeof(MinidumpModule) > data.size())
return {};
@@ -170,7 +170,7 @@ MinidumpModule::ParseModuleList(llvm::ArrayRef<uint8_t> &data) {
const MinidumpExceptionStream *
MinidumpExceptionStream::Parse(llvm::ArrayRef<uint8_t> &data) {
const MinidumpExceptionStream *exception_stream = nullptr;
- Error error = consumeObject(data, exception_stream);
+ Status error = consumeObject(data, exception_stream);
if (error.Fail())
return nullptr;
@@ -180,7 +180,7 @@ MinidumpExceptionStream::Parse(llvm::ArrayRef<uint8_t> &data) {
llvm::ArrayRef<MinidumpMemoryDescriptor>
MinidumpMemoryDescriptor::ParseMemoryList(llvm::ArrayRef<uint8_t> &data) {
const llvm::support::ulittle32_t *mem_ranges_count;
- Error error = consumeObject(data, mem_ranges_count);
+ Status error = consumeObject(data, mem_ranges_count);
if (error.Fail() ||
*mem_ranges_count * sizeof(MinidumpMemoryDescriptor) > data.size())
return {};
@@ -193,7 +193,7 @@ MinidumpMemoryDescriptor::ParseMemoryList(llvm::ArrayRef<uint8_t> &data) {
std::pair<llvm::ArrayRef<MinidumpMemoryDescriptor64>, uint64_t>
MinidumpMemoryDescriptor64::ParseMemory64List(llvm::ArrayRef<uint8_t> &data) {
const llvm::support::ulittle64_t *mem_ranges_count;
- Error error = consumeObject(data, mem_ranges_count);
+ Status error = consumeObject(data, mem_ranges_count);
if (error.Fail() ||
*mem_ranges_count * sizeof(MinidumpMemoryDescriptor64) > data.size())
return {};
@@ -213,7 +213,7 @@ MinidumpMemoryDescriptor64::ParseMemory64List(llvm::ArrayRef<uint8_t> &data) {
std::vector<const MinidumpMemoryInfo *>
MinidumpMemoryInfo::ParseMemoryInfoList(llvm::ArrayRef<uint8_t> &data) {
const MinidumpMemoryInfoListHeader *header;
- Error error = consumeObject(data, header);
+ Status error = consumeObject(data, header);
if (error.Fail() ||
header->size_of_header < sizeof(MinidumpMemoryInfoListHeader) ||
header->size_of_entry < sizeof(MinidumpMemoryInfo))
diff --git a/source/Plugins/Process/minidump/MinidumpTypes.h b/source/Plugins/Process/minidump/MinidumpTypes.h
index 42de7eaaca03..6de4f55a769d 100644
--- a/source/Plugins/Process/minidump/MinidumpTypes.h
+++ b/source/Plugins/Process/minidump/MinidumpTypes.h
@@ -13,7 +13,7 @@
// Project includes
// Other libraries and framework includes
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
@@ -158,8 +158,8 @@ enum class MinidumpMiscInfoFlags : uint32_t {
};
template <typename T>
-Error consumeObject(llvm::ArrayRef<uint8_t> &Buffer, const T *&Object) {
- Error error;
+Status consumeObject(llvm::ArrayRef<uint8_t> &Buffer, const T *&Object) {
+ Status error;
if (Buffer.size() < sizeof(T)) {
error.SetErrorString("Insufficient buffer!");
return error;
diff --git a/source/Plugins/Process/minidump/ProcessMinidump.cpp b/source/Plugins/Process/minidump/ProcessMinidump.cpp
index f3f4664ad6e1..d4d65c044eab 100644
--- a/source/Plugins/Process/minidump/ProcessMinidump.cpp
+++ b/source/Plugins/Process/minidump/ProcessMinidump.cpp
@@ -113,8 +113,8 @@ void ProcessMinidump::Terminate() {
PluginManager::UnregisterPlugin(ProcessMinidump::CreateInstance);
}
-Error ProcessMinidump::DoLoadCore() {
- Error error;
+Status ProcessMinidump::DoLoadCore() {
+ Status error;
m_thread_list = m_minidump_parser.GetThreads();
m_active_exception = m_minidump_parser.GetExceptionStream();
@@ -141,7 +141,7 @@ ConstString ProcessMinidump::GetPluginName() { return GetPluginNameStatic(); }
uint32_t ProcessMinidump::GetPluginVersion() { return 1; }
-Error ProcessMinidump::DoDestroy() { return Error(); }
+Status ProcessMinidump::DoDestroy() { return Status(); }
void ProcessMinidump::RefreshStateAfterStop() {
if (!m_active_exception)
@@ -184,14 +184,14 @@ bool ProcessMinidump::IsAlive() { return true; }
bool ProcessMinidump::WarnBeforeDetach() const { return false; }
size_t ProcessMinidump::ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
// Don't allow the caching that lldb_private::Process::ReadMemory does
// since we have it all cached in our dump file anyway.
return DoReadMemory(addr, buf, size, error);
}
size_t ProcessMinidump::DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) {
+ Status &error) {
llvm::ArrayRef<uint8_t> mem = m_minidump_parser.GetMemory(addr, size);
if (mem.empty()) {
@@ -215,9 +215,9 @@ ArchSpec ProcessMinidump::GetArchitecture() {
return ArchSpec(triple);
}
-Error ProcessMinidump::GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) {
- Error error;
+Status ProcessMinidump::GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) {
+ Status error;
auto info = m_minidump_parser.GetMemoryRegionInfo(load_addr);
if (!info) {
error.SetErrorString("No valid MemoryRegionInfo found!");
@@ -278,7 +278,7 @@ void ProcessMinidump::ReadModuleList() {
const auto file_spec = FileSpec(name.getValue(), true);
ModuleSpec module_spec = file_spec;
- Error error;
+ Status error;
lldb::ModuleSP module_sp = GetTarget().GetSharedModule(module_spec, &error);
if (!module_sp || error.Fail()) {
continue;
diff --git a/source/Plugins/Process/minidump/ProcessMinidump.h b/source/Plugins/Process/minidump/ProcessMinidump.h
index 62407f927551..d5c46be97352 100644
--- a/source/Plugins/Process/minidump/ProcessMinidump.h
+++ b/source/Plugins/Process/minidump/ProcessMinidump.h
@@ -19,7 +19,7 @@
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/Error.h"
+#include "lldb/Utility/Status.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
@@ -53,7 +53,7 @@ public:
bool CanDebug(lldb::TargetSP target_sp,
bool plugin_specified_by_name) override;
- Error DoLoadCore() override;
+ Status DoLoadCore() override;
DynamicLoader *GetDynamicLoader() override;
@@ -61,7 +61,7 @@ public:
uint32_t GetPluginVersion() override;
- Error DoDestroy() override;
+ Status DoDestroy() override;
void RefreshStateAfterStop() override;
@@ -70,15 +70,15 @@ public:
bool WarnBeforeDetach() const override;
size_t ReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) override;
+ Status &error) override;
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
- Error &error) override;
+ Status &error) override;
ArchSpec GetArchitecture();
- Error GetMemoryRegionInfo(lldb::addr_t load_addr,
- MemoryRegionInfo &range_info) override;
+ Status GetMemoryRegionInfo(lldb::addr_t load_addr,
+ MemoryRegionInfo &range_info) override;
bool GetProcessInfo(ProcessInstanceInfo &info) override;