check(Archive::create(MB), "failed to parse archive");
std::vector<MemoryBufferRef> V;
- Error Err;
+ Error Err = Error::success();
for (const ErrorOr<Archive::Child> &COrErr : File->children(Err)) {
Archive::Child C = check(COrErr, "could not get the child of the archive " +
File->getFileName());
/// @return
/// Returns an error object.
//------------------------------------------------------------------
- virtual Error WillAttachToProcessWithID(lldb::pid_t pid) { return Error(); }
+ virtual Error WillAttachToProcessWithID(lldb::pid_t pid) {
+ return Error::success();
+ }
//------------------------------------------------------------------
/// Called before attaching to a process.
//------------------------------------------------------------------
virtual Error WillAttachToProcessWithName(const char *process_name,
bool wait_for_launch) {
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
/// @return
/// Returns an error object.
//------------------------------------------------------------------
- virtual Error WillLaunch(Module *module) { return Error(); }
+ virtual Error WillLaunch(Module *module) { return Error::success(); }
//------------------------------------------------------------------
/// Launch a new process.
/// @return
/// Returns an error object.
//------------------------------------------------------------------
- virtual Error WillResume() { return Error(); }
+ virtual Error WillResume() { return Error::success(); }
//------------------------------------------------------------------
/// Resumes all of a process's threads as configured using the
/// @return
/// Returns an error object.
//------------------------------------------------------------------
- virtual Error WillHalt() { return Error(); }
+ virtual Error WillHalt() { return Error::success(); }
//------------------------------------------------------------------
/// Halts a running process.
/// @return
/// Returns an error object.
//------------------------------------------------------------------
- virtual Error WillDetach() { return Error(); }
+ virtual Error WillDetach() { return Error::success(); }
//------------------------------------------------------------------
/// Detaches from a running or stopped process.
/// Process::DoSignal(int), otherwise an error describing what
/// prevents the signal from being sent.
//------------------------------------------------------------------
- virtual Error WillSignal() { return Error(); }
+ virtual Error WillSignal() { return Error::success(); }
//------------------------------------------------------------------
/// Sends a process a UNIX signal \a signal.
return error;
}
- virtual Error WillDestroy() { return Error(); }
+ virtual Error WillDestroy() { return Error::success(); }
virtual Error DoDestroy() = 0;
ExecutionContext *execution_context) {
if (!some_location_specified)
current_function = true;
- return Error();
+ return Error::success();
}
llvm::ArrayRef<OptionDefinition>
return Error("as it does not refer to a pointer");
if (pointee.IsVoidType())
return Error("as it refers to a pointer to void");
- return Error();
+ return Error::success();
}
bool CommandObjectExpression::EvaluateExpression(const char *expr,
*did_create_ptr = true;
shared_module_list.ReplaceEquivalent(module_sp);
- return Error();
+ return Error::success();
}
}
} else {
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
" already enabled, ignoring.",
__FUNCTION__, m_addr);
- return Error();
+ return Error::success();
}
// Log and enable.
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
" already disabled, ignoring.",
__FUNCTION__, m_addr);
- return Error();
+ return Error::success();
}
// Log and disable.
__FUNCTION__, addr);
iter->second->AddRef();
- return Error();
+ return Error::success();
}
// Create a new breakpoint using the given create func.
// Disable it.
breakpoint_sp = iter->second;
- return Error();
+ return Error::success();
}
Error NativeBreakpointList::RemoveTrapsFromBuffer(lldb::addr_t addr, void *buf,
auto opcode_size = software_bp_sp->m_opcode_size;
::memcpy(opcode_addr, saved_opcodes, opcode_size);
}
- return Error();
+ return Error::success();
}
arch = module_specs.GetModuleSpecRefAtIndex(0).GetArchitecture();
if (arch.IsValid())
- return Error();
+ return Error::success();
else
return Error("failed to retrieve a valid architecture from the exe module");
}
Error NativeWatchpointList::Add(addr_t addr, size_t size, uint32_t watch_flags,
bool hardware) {
m_watchpoints[addr] = {addr, size, watch_flags, hardware};
- return Error();
+ return Error::success();
}
Error NativeWatchpointList::Remove(addr_t addr) {
m_watchpoints.erase(addr);
- return Error();
+ return Error::success();
}
const NativeWatchpointList::WatchpointMap &
// breakpoint.
breakpoint_sp.reset(new SoftwareBreakpoint(process, addr, saved_opcode_bytes,
bp_opcode_bytes, bp_opcode_size));
- return Error();
+ return Error::success();
}
Error SoftwareBreakpoint::EnableSoftwareBreakpoint(
log->Printf("SoftwareBreakpoint::%s addr = 0x%" PRIx64 " -- SUCCESS",
__FUNCTION__, addr);
- return Error();
+ return Error::success();
}
// -------------------------------------------------------------------
} break;
case EEXIST: {
if (file_spec.IsDirectory())
- return Error(); // It is a directory and it already exists
+ return Error::success(); // It is a directory and it already exists
} break;
}
}
dst = FileSpec(real_path, false);
- return Error();
+ return Error::success();
}
#if defined(__NetBSD__)
it->second.callback(*this); // Do the work
if (m_terminate_request)
- return Error();
+ return Error::success();
}
for (int fd : read_fds) {
it->second(*this); // Do the work
if (m_terminate_request)
- return Error();
+ return Error::success();
}
}
- return Error();
+ return Error::success();
}
}
}
- return Error();
+ return Error::success();
}
int PipePosix::GetReadFileDescriptor() const { return m_fds[READ]; }
if (!::GetOverlappedResult(file_handle, &overlapped, &bytes, TRUE))
return Error(::GetLastError(), eErrorTypeWin32);
- return Error();
+ return Error::success();
}
} // namespace
if (!::GetOverlappedResult(m_file, &overlapped, &bytes, TRUE))
return Error(::GetLastError(), eErrorTypeWin32);
- return Error();
+ return Error::success();
}
ZeroMemory(&m_write_overlapped, sizeof(m_write_overlapped));
}
- return Error();
+ return Error::success();
}
int PipeWindows::GetReadFileDescriptor() const { return m_read_fd; }
CloseWriteFileDescriptor();
}
-Error PipeWindows::Delete(llvm::StringRef name) { return Error(); }
+Error PipeWindows::Delete(llvm::StringRef name) { return Error::success(); }
bool PipeWindows::CanRead() const { return (m_read != INVALID_HANDLE_VALUE); }
return Error(::GetLastError(), eErrorTypeWin32);
bytes_read = sys_bytes_read;
- return Error();
+ return Error::success();
}
Error PipeWindows::Write(const void *buf, size_t num_bytes,
&sys_bytes_written, TRUE);
if (!result)
return Error(::GetLastError(), eErrorTypeWin32);
- return Error();
+ return Error::success();
}
if (DataVisualization::NamedSummaryFormats::GetSummaryFormat(
ConstString(str), summary_sp) == false)
return Error("must specify a valid named summary");
- return Error();
+ return Error::success();
}
static Error ValidateSummaryString(const char *str, void *) {
if (!str || !str[0])
return Error("must specify a non-empty summary string");
- return Error();
+ return Error::success();
}
OptionGroupVariable::OptionGroupVariable(bool show_frame_options)
return error;
}
m_current_value.assign(value);
- return Error();
+ return Error::success();
}
Error OptionValueString::AppendToCurrentValue(const char *value) {
} else
m_current_value.append(value);
}
- return Error();
+ return Error::success();
}
}
// AD: Needs to be updated?
-Error DynamicLoaderHexagonDYLD::CanLoadImage() { return Error(); }
+Error DynamicLoaderHexagonDYLD::CanLoadImage() { return Error::success(); }
void DynamicLoaderHexagonDYLD::UpdateLoadedSections(ModuleSP module,
addr_t link_map_addr,
}
}
-Error DynamicLoaderPOSIXDYLD::CanLoadImage() { return Error(); }
+Error DynamicLoaderPOSIXDYLD::CanLoadImage() { return Error::success(); }
void DynamicLoaderPOSIXDYLD::UpdateLoadedSections(ModuleSP module,
addr_t link_map_addr,
void DynamicLoaderWindowsDYLD::DidLaunch() {}
-Error DynamicLoaderWindowsDYLD::CanLoadImage() { return Error(); }
+Error DynamicLoaderWindowsDYLD::CanLoadImage() { return Error::success(); }
ConstString DynamicLoaderWindowsDYLD::GetPluginName() {
return GetPluginNameStatic();
std::string(output_buf.begin(), output_buf.end()).c_str());
}
- return Error();
+ return Error::success();
}
Error AdbClient::Shell(const char *command, uint32_t timeout_ms,
dst.close();
if (!dst)
return Error("Failed to write file %s", output_filename.c_str());
- return Error();
+ return Error::success();
}
std::unique_ptr<AdbClient::SyncService>
mode = extractor.GetU32(&offset);
size = extractor.GetU32(&offset);
mtime = extractor.GetU32(&offset);
- return Error();
+ return Error::success();
}
Error AdbClient::SyncService::PullFile(const FileSpec &remote_file,
} else
return Error("Pull failed with unknown response: %s", response_id.c_str());
- return Error();
+ return Error::success();
}
Error AdbClient::SyncService::ReadAllBytes(void *buffer, size_t size) {
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
Error PlatformKalimba::GetFileWithUUID(const FileSpec & /*platform_file*/,
const UUID * /*uuid_ptr*/,
FileSpec & /*local_file*/) {
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
if (spawned) {
launch_info.SetProcessID(spawned.GetPID());
- return Error();
+ return Error::success();
} else
return spawned.GetError();
#else
Error PlatformAppleSimulator::DisconnectRemote() {
#if defined(__APPLE__)
m_device.reset();
- return Error();
+ return Error::success();
#else
Error err;
err.SetErrorString(UNSUPPORTED_ERROR);
module_spec.GetArchitecture());
module_sp.reset(new Module(local_spec));
module_sp->SetPlatformFileSpec(module_spec.GetFileSpec());
- return Error();
+ return Error::success();
}
}
(IsHost() ? "host" : "remote"),
module_spec.GetFileSpec().GetDirectory().AsCString(),
module_spec.GetFileSpec().GetFilename().AsCString());
- return Error();
+ return Error::success();
}
// bring in the remote module file
ModuleSpec local_spec(module_cache_spec, module_spec.GetArchitecture());
module_sp.reset(new Module(local_spec));
module_sp->SetPlatformFileSpec(module_spec.GetFileSpec());
- return Error();
+ return Error::success();
} else
return Error("unable to obtain valid module file");
} else
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
lldb_private::Error
if (local_os_build.compare(remote_os_build) == 0) {
// same OS version: the local file is good enough
local_file = platform_file;
- return Error();
+ return Error::success();
} else {
// try to find the file in the cache
std::string cache_path(GetLocalCacheDirectory());
FileSpec module_cache_spec(cache_path, false);
if (module_cache_spec.Exists()) {
local_file = module_cache_spec;
- return Error();
+ return Error::success();
}
// bring in the remote module file
FileSpec module_cache_folder =
return err;
if (module_cache_spec.Exists()) {
local_file = module_cache_spec;
- return Error();
+ return Error::success();
} else
return Error("unable to obtain valid module file");
}
}
local_file = platform_file;
- return Error();
+ return Error::success();
}
bool PlatformMacOSX::GetSupportedArchitectureAtIndex(uint32_t idx,
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
if (IsHost()) {
if (FileSpec::Equal(source, destination, true))
- return Error();
+ return Error::success();
// cp src dst
// chown uid:gid dst
std::string src_path(source.GetPath());
if (status != 0)
return Error("unable to perform copy");
if (uid == UINT32_MAX && gid == UINT32_MAX)
- return Error();
+ return Error::success();
if (chown_file(this, dst_path.c_str(), uid, gid) != 0)
return Error("unable to perform chown");
- return Error();
+ return Error::success();
} else if (m_remote_platform_sp) {
if (GetSupportsRSync()) {
std::string src_path(source.GetPath());
// Don't chown a local file for a remote system
// if (chown_file(this,dst_path.c_str(),uid,gid) != 0)
// return Error("unable to perform chown");
- return Error();
+ return Error::success();
}
// if we are still here rsync has failed - let's try the slow way before
// giving up
RunShellCommand(cp_command.GetData(), NULL, &status, NULL, NULL, 10);
if (status != 0)
return Error("unable to perform copy");
- return Error();
+ return Error::success();
} else if (m_remote_platform_sp) {
if (GetSupportsRSync()) {
StreamString command;
int retcode;
Host::RunShellCommand(command.GetData(), NULL, &retcode, NULL, NULL, 60);
if (retcode == 0)
- return Error();
+ return Error::success();
// If we are here, rsync has failed - let's try the slow way before giving
// up
}
if (result_valobj_sp->GetError().Fail())
return result_valobj_sp->GetError();
- return Error();
+ return Error::success();
}
uint32_t PlatformPOSIX::DoLoadImage(lldb_private::Process *process,
return Error("expression failed: \"%s\"", expr.GetData());
process->ResetImageToken(image_token);
}
- return Error();
+ return Error::success();
}
lldb::ProcessSP PlatformPOSIX::ConnectProcess(const char *connect_url,
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
Error PlatformWindows::GetSharedModule(
FileSpec &local_file) {
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
//------------------------------------------------------------------
Error PlatformRemoteGDBServer::KillProcess(const lldb::pid_t pid) {
if (!KillSpawnedProcess(pid))
return Error("failed to kill remote spawned process");
- return Error();
+ return Error::success();
}
lldb::ProcessSP PlatformRemoteGDBServer::DebugProcess(
else
m_monitor->Resume(GetID(), m_resume_signo);
- return Error();
+ return Error::success();
}
bool ProcessFreeBSD::UpdateThreadList(ThreadList &old_thread_list,
// 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 Error::success();
} else if (error.Fail())
return error;
m_threads_stepping_with_breakpoint.insert({thread.GetID(), next_pc});
- return Error();
+ return Error::success();
}
bool NativeProcessLinux::SupportHardwareSingleStepping() const {
}
}
- return Error();
+ return Error::success();
}
Error NativeProcessLinux::Halt() {
StopRunningThreads(deferred_signal_thread_sp->GetID());
- return Error();
+ return Error::success();
}
Error NativeProcessLinux::Kill() {
if (name)
memory_region_info.SetName(name);
- return Error();
+ return Error::success();
}
Error NativeProcessLinux::GetMemoryRegionInfo(lldb::addr_t load_addr,
if (InferiorCallMmap(this, addr, 0, size, prot,
eMmapFlagsAnon | eMmapFlagsPrivate, -1, 0)) {
m_addr_to_mmap_size[addr] = size;
- return Error();
+ return Error::success();
} else {
addr = LLDB_INVALID_ADDRESS;
return Error("unable to allocate %" PRIu64
case llvm::Triple::x86:
case llvm::Triple::x86_64:
actual_opcode_size = static_cast<uint32_t>(sizeof(g_i386_opcode));
- return Error();
+ return Error::success();
case llvm::Triple::systemz:
actual_opcode_size = static_cast<uint32_t>(sizeof(g_s390x_opcode));
- return Error();
+ return Error::success();
case llvm::Triple::arm:
case llvm::Triple::aarch64:
case llvm::Triple::mipsel:
// On these architectures the PC don't get updated for breakpoint hits
actual_opcode_size = 0;
- return Error();
+ return Error::success();
default:
assert(false && "CPU type not supported!");
case llvm::Triple::aarch64:
trap_opcode_bytes = g_aarch64_opcode;
actual_opcode_size = sizeof(g_aarch64_opcode);
- return Error();
+ return Error::success();
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 Error::success();
case 4:
trap_opcode_bytes = g_arm_breakpoint_opcode;
actual_opcode_size = sizeof(g_arm_breakpoint_opcode);
- return Error();
+ return Error::success();
default:
assert(false && "Unrecognised trap opcode size hint!");
return Error("Unrecognised trap opcode size hint!");
case llvm::Triple::x86_64:
trap_opcode_bytes = g_i386_opcode;
actual_opcode_size = sizeof(g_i386_opcode);
- return Error();
+ return Error::success();
case llvm::Triple::mips:
case llvm::Triple::mips64:
trap_opcode_bytes = g_mips64_opcode;
actual_opcode_size = sizeof(g_mips64_opcode);
- return Error();
+ return Error::success();
case llvm::Triple::mipsel:
case llvm::Triple::mips64el:
trap_opcode_bytes = g_mips64el_opcode;
actual_opcode_size = sizeof(g_mips64el_opcode);
- return Error();
+ return Error::success();
case llvm::Triple::systemz:
trap_opcode_bytes = g_s390x_opcode;
actual_opcode_size = sizeof(g_s390x_opcode);
- return Error();
+ return Error::success();
default:
assert(false && "CPU type not supported!");
success ? "Success" : strerror(errno));
if (success)
- return Error();
+ return Error::success();
// else
// the call failed for some reason, let's retry the read using ptrace
// api.
if (log)
ProcessPOSIXLog::DecNestLevel();
- return Error();
+ return Error::success();
}
Error NativeProcessLinux::ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf,
Error NativeProcessLinux::Detach(lldb::tid_t tid) {
if (tid == LLDB_INVALID_THREAD_ID)
- return Error();
+ return Error::success();
return PtraceWrapper(PTRACE_DETACH, tid);
}
"NativeProcessLinux::%s pid %" PRIu64
" no lldb breakpoint found at current pc with adjustment: 0x%" PRIx64,
__FUNCTION__, GetID(), breakpoint_addr);
- return Error();
+ return Error::success();
}
// If the breakpoint is not a software breakpoint, nothing to do.
" breakpoint found at 0x%" PRIx64
", not software, nothing to adjust",
__FUNCTION__, GetID(), breakpoint_addr);
- return Error();
+ return Error::success();
}
//
" breakpoint found at 0x%" PRIx64
", it is software, but the size is zero, nothing to do (unexpected)",
__FUNCTION__, GetID(), breakpoint_addr);
- return Error();
+ return Error::success();
}
// Change the program counter.
return Error("Module file (%s) not found in /proc/%" PRIu64 "/maps file!",
module_file_spec.GetFilename().AsCString(), GetID());
- return Error();
+ return Error::success();
}
Error NativeProcessLinux::GetFileLoadAddress(const llvm::StringRef &file_name,
if (error.Fail())
return error;
- return Error();
+ return Error::success();
}
return Error("failed - register wasn't recognized to be a GPR or an FPR, "
}
}
- return Error();
+ return Error::success();
}
uint32_t NativeRegisterContextLinux_arm::GetWatchpointSize(uint32_t wp_index) {
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 Error::success();
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Error::success();
}
lldb::addr_t
Error error;
if (!m_refresh_hwdebug_info) {
- return Error();
+ return Error::success();
}
unsigned int cap_val;
return error;
value.SetUInt32(m_gpr_arm[offset / sizeof(uint32_t)]);
- return Error();
+ return Error::success();
}
Error NativeRegisterContextLinux_arm::DoWriteRegisterValue(
if (error.Fail())
return error;
- return Error();
+ return Error::success();
}
return Error("failed - register wasn't recognized to be a GPR or an FPR, "
}
}
- return Error();
+ return Error::success();
}
uint32_t
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 Error::success();
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Error::success();
}
lldb::addr_t
Error NativeRegisterContextLinux_arm64::ReadHardwareDebugInfo() {
if (!m_refresh_hwdebug_info) {
- return Error();
+ return Error::success();
}
::pid_t tid = m_thread.GetID();
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Error::success();
}
Error NativeRegisterContextLinux_mips64::IsWatchpointVacant(uint32_t wp_index,
assert(false && "Unhandled data size.");
return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
- return Error();
+ return Error::success();
}
if (IsFPR(reg)) {
assert(false && "Unhandled data size.");
return Error("unhandled byte size: %" PRIu32, reg_info->byte_size);
}
- return Error();
+ return Error::success();
}
if (reg == lldb_last_break_s390x) {
return error;
reg_value.SetUInt64(last_break);
- return Error();
+ return Error::success();
}
if (reg == lldb_system_call_s390x) {
return error;
reg_value.SetUInt32(system_call);
- return Error();
+ return Error::success();
}
return Error("failed - register wasn't recognized");
if (m_watchpoint_addr == LLDB_INVALID_ADDRESS) {
is_hit = false;
- return Error();
+ return Error::success();
}
Error error = PeekUserArea(offsetof(user_regs_struct, per_info.lowcore),
sizeof(per_lowcore));
}
- return Error();
+ return Error::success();
}
Error NativeRegisterContextLinux_s390x::GetWatchpointHitIndex(
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Error::success();
}
Error NativeRegisterContextLinux_s390x::IsWatchpointVacant(uint32_t wp_index,
is_vacant = m_watchpoint_addr == LLDB_INVALID_ADDRESS;
- return Error();
+ return Error::success();
}
bool NativeRegisterContextLinux_s390x::ClearHardwareWatchpoint(
Error NativeRegisterContextLinux_s390x::ClearAllHardwareWatchpoints() {
if (ClearHardwareWatchpoint(0))
- return Error();
+ return Error::success();
return Error("Clearing all hardware watchpoints failed.");
}
if (!CopyMPXtoXSTATE(reg_index))
return Error("CopyMPXtoXSTATE() failed");
}
- return Error();
+ return Error::success();
}
return Error("failed - register wasn't recognized to be a GPR or an FPR, "
"write strategy unknown");
}
}
wp_index = LLDB_INVALID_INDEX32;
- return Error();
+ return Error::success();
}
Error NativeRegisterContextLinux_x86_64::IsWatchpointVacant(uint32_t wp_index,
if (!hardware)
return Error("not implemented");
if (m_state == eStateLaunching)
- return Error();
+ return Error::success();
Error error = RemoveWatchpoint(addr);
if (error.Fail())
return error;
if (wp_index == LLDB_INVALID_INDEX32)
return Error("Setting hardware watchpoint failed.");
m_watchpoint_index_map.insert({addr, wp_index});
- return Error();
+ return Error::success();
}
Error NativeThreadLinux::RemoveWatchpoint(lldb::addr_t addr) {
auto wp = m_watchpoint_index_map.find(addr);
if (wp == m_watchpoint_index_map.end())
- return Error();
+ return Error::success();
uint32_t wp_index = wp->second;
m_watchpoint_index_map.erase(wp);
if (GetRegisterContext()->ClearHardwareWatchpoint(wp_index))
- return Error();
+ return Error::success();
return Error("Clearing hardware watchpoint failed.");
}
return m_dyld_ap.get();
}
-Error ProcessKDP::WillResume() { return Error(); }
+Error ProcessKDP::WillResume() { return Error::success(); }
Error ProcessKDP::DoResume() {
Error error;
WINDOWS_LOG_PROCESS,
"DoDetach called while state = %u, but there is no active session.",
private_state);
- return Error();
+ return Error::success();
}
debugger_thread = m_session_data->m_debugger;
WINDOWS_LOG_PROCESS,
"DoDestroy called while state = %u, but there is no active session.",
private_state);
- return Error();
+ return Error::success();
}
debugger_thread = m_session_data->m_debugger;
return m_impl_up->RefreshStateAfterStop();
}
-Error ProcessWinMiniDump::DoDestroy() { return Error(); }
+Error ProcessWinMiniDump::DoDestroy() { return Error::success(); }
bool ProcessWinMiniDump::IsAlive() { return true; }
void ProcessElfCore::RefreshStateAfterStop() {}
-Error ProcessElfCore::DoDestroy() { return Error(); }
+Error ProcessElfCore::DoDestroy() { return Error::success(); }
//------------------------------------------------------------------
// Process Queries
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
}
- return Error();
+ return Error::success();
}
region_info.GetRange().SetRangeBase(load_addr);
region_info.SetWritable(MemoryRegionInfo::eNo);
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
- return Error();
+ return Error::success();
}
size_t ProcessElfCore::DoReadMemory(lldb::addr_t addr, void *buf, size_t size,
response.GetEscapedBinaryData(output);
if (command_output)
command_output->assign(output);
- return Error();
+ return Error::success();
}
return Error("unable to send packet");
}
__FUNCTION__);
m_process_launch_info.SetArguments(const_cast<const char **>(args), true);
- return Error();
+ return Error::success();
}
Error GDBRemoteCommunicationServerLLGS::SetLaunchFlags(
unsigned int launch_flags) {
m_process_launch_info.GetFlags().Set(launch_flags);
- return Error();
+ return Error::success();
}
Error GDBRemoteCommunicationServerLLGS::LaunchProcess() {
return error;
}
- return Error();
+ return Error::success();
}
void GDBRemoteCommunicationServerLLGS::StartSTDIOForwarding() {
m_continue_S_tids.clear();
m_jstopinfo_sp.reset();
m_jthreadsinfo_sp.reset();
- return Error();
+ return Error::success();
}
Error ProcessGDBRemote::DoResume() {
const ProcessInfo &process_info) {
// Make sure we aren't already connected?
if (m_gdb_comm.IsConnected())
- return Error();
+ return Error::success();
PlatformSP platform_sp(GetTarget().GetPlatform());
if (platform_sp && !platform_sp->IsHost())
XMLNode root_element = doc.GetRootElement("library-list-svr4");
if (!root_element)
- return Error();
+ return Error::success();
// main link map structure
llvm::StringRef main_lm = root_element.GetAttributeValue("main-lm");
XMLNode root_element = doc.GetRootElement("library-list");
if (!root_element)
- return Error();
+ return Error::success();
root_element.ForEachChildElementWithName(
"library", [log, &list](const XMLNode &library) -> bool {
return Error(0, ErrorType::eErrorTypeGeneric);
}
- return Error();
+ return Error::success();
}
lldb::ModuleSP ProcessGDBRemote::LoadModuleAtAddress(const FileSpec &file,
// The file is not loaded into the inferior
is_loaded = false;
load_addr = LLDB_INVALID_ADDRESS;
- return Error();
+ return Error::success();
}
return Error(
if (response.IsNormalResponse()) {
is_loaded = true;
load_addr = response.GetHexMaxU64(false, LLDB_INVALID_ADDRESS);
- return Error();
+ return Error::success();
}
return Error("Unknown error happened during sending the load address packet");
// SetThreadStopInfo (m_last_stop_packet);
}
-Error ProcessMachCore::DoDestroy() { return Error(); }
+Error ProcessMachCore::DoDestroy() { return Error::success(); }
//------------------------------------------------------------------
// Process Queries
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
}
- return Error();
+ return Error::success();
}
region_info.GetRange().SetRangeBase(load_addr);
region_info.SetWritable(MemoryRegionInfo::eNo);
region_info.SetExecutable(MemoryRegionInfo::eNo);
region_info.SetMapped(MemoryRegionInfo::eNo);
- return Error();
+ return Error::success();
}
void ProcessMachCore::Clear() { m_thread_list.Clear(); }
uint32_t ProcessMinidump::GetPluginVersion() { return 1; }
-Error ProcessMinidump::DoDestroy() { return Error(); }
+Error ProcessMinidump::DoDestroy() { return Error::success(); }
void ProcessMinidump::RefreshStateAfterStop() {
if (!m_active_exception)
const UUID *uuid_ptr, FileSpec &local_file) {
// Default to the local case
local_file = platform_file;
- return Error();
+ return Error::success();
}
FileSpecList
"they are controlled by a process plugin");
}
Host::Kill(pid, SIGTERM);
- return Error();
+ return Error::success();
}
lldb::ProcessSP
const auto error = module_resolver(resolved_module_spec);
if (error.Fail()) {
if (GetCachedSharedModule(resolved_module_spec, module_sp, did_create_ptr))
- return Error();
+ return Error::success();
}
return error;
RestoreProcessEvents();
SetExitStatus(SIGKILL, "Cancelled async attach.");
Destroy(false);
- return Error();
+ return Error::success();
}
// Wait for 10 second for the process to stop.
BroadcastEvent(event_sp);
- return Error();
+ return Error::success();
}
Error Process::StopForDestroyOrDetach(lldb::EventSP &exit_event_sp) {
if (!reg_ctx->SetPC(dest))
return Error("Cannot change PC to target address.");
- return Error();
+ return Error::success();
}
void Thread::DumpUsingSettingsFormat(Stream &strm, uint32_t frame_idx,
if (!dir_path.IsDirectory())
return Error("Invalid existing path");
- return Error();
+ return Error::success();
}
return FileSystem::MakeDirectory(dir_path, eFilePermissionsDirectoryDefault);
platform_module_spec.GetPath().c_str());
if (sysroot_module_path_spec.Exists()) {
if (!delete_existing)
- return Error();
+ return Error::success();
DecrementRefExistingModule(root_dir_spec, sysroot_module_path_spec);
}
if (error.Fail())
return Error("Failed to create link to %s: %s",
module_file_path.GetPath().c_str(), error.AsCString());
- return Error();
+ return Error::success();
}
Error ModuleCache::Get(const FileSpec &root_dir_spec, const char *hostname,
if (find_it != m_loaded_modules.end()) {
cached_module_sp = (*find_it).second.lock();
if (cached_module_sp)
- return Error();
+ return Error::success();
m_loaded_modules.erase(find_it);
}
m_loaded_modules.insert(
std::make_pair(module_spec.GetUUID().GetAsString(), cached_module_sp));
- return Error();
+ return Error::success();
}
Error ModuleCache::GetAndPut(const FileSpec &root_dir_spec,
// module might
// contain the necessary symbols and the debugging is also possible without
// a symfile.
- return Error();
+ return Error::success();
error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
tmp_download_sym_file_spec,
FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
- return Error();
+ return Error::success();
}
file_spec.GetPath().c_str(), err_code.message().c_str());
tmp_file_remover.releaseFile();
- return Error();
+ return Error::success();
}
//----------------------------------------------------------------------
std::error_code ec = llvm::sys::fs::copy_file(
s_test_executable, tmp_download_file_spec.GetCString());
EXPECT_FALSE(ec);
- return Error();
+ return Error::success();
},
[](const ModuleSP &module_sp, const FileSpec &tmp_download_file_spec) {
return Error("Not supported.");
/// Channel is the ChannelT instance to communicate on. It is assumed that
/// the channel is ready to be read from and written to.
static Expected<OrcRemoteTargetClient> Create(ChannelT &Channel) {
- Error Err;
+ Error Err = Error::success();
OrcRemoteTargetClient H(Channel, Err);
if (Err)
return std::move(Err);
static Error doNothing() { return Error::success(); }
ChannelT &Channel;
- Error ExistingError;
+ Error ExistingError = Error::success();
std::string RemoteTargetTriple;
uint32_t RemotePointerSize = 0;
uint32_t RemotePageSize = 0;
// error.
template <typename T> friend class Expected;
-public:
+protected:
/// Create a success value. Prefer using 'Error::success()' for readability
- /// where possible.
Error() : Payload(nullptr) {
setPtr(nullptr);
setChecked(false);
}
+public:
/// Create a success value. This is equivalent to calling the default
/// constructor, but should be preferred for readability where possible.
static Error success() { return Error(); }
assert(ResI == Res.end());
ThinLTO.ModuleMap[MBRef.getBufferIdentifier()] = MBRef;
- return Error();
+ return Error::success();
}
unsigned LTO::getMaxTasks() const {
if (Conf.PreOptModuleHook &&
!Conf.PreOptModuleHook(0, *RegularLTO.CombinedModule))
- return Error();
+ return Error::success();
if (!Conf.CodeGenOnly) {
for (const auto &R : GlobalResolutions) {
if (Conf.PostInternalizeModuleHook &&
!Conf.PostInternalizeModuleHook(0, *RegularLTO.CombinedModule))
- return Error();
+ return Error::success();
}
return backend(Conf, AddStream, RegularLTO.ParallelCodeGenParallelismLevel,
std::move(RegularLTO.CombinedModule));
if (AddStreamFn CacheAddStream = Cache(Task, Key))
return RunThinBackend(CacheAddStream);
- return Error();
+ return Error::success();
}
Error start(
MBRef, std::ref(CombinedIndex), std::ref(ImportList),
std::ref(ExportList), std::ref(ResolvedODR), std::ref(DefinedGlobals),
std::ref(ModuleMap));
- return Error();
+ return Error::success();
}
Error wait() override {
if (Err)
return std::move(*Err);
else
- return Error();
+ return Error::success();
}
};
if (ShouldEmitImportsFiles)
return errorCodeToError(
EmitImportsFiles(ModulePath, NewModulePath + ".imports", ImportList));
- return Error();
+ return Error::success();
}
- Error wait() override { return Error(); }
+ Error wait() override { return Error::success(); }
};
ThinBackend lto::createWriteIndexesThinBackend(std::string OldPrefix,
Error LTO::runThinLTO(AddStreamFn AddStream, NativeObjectCache Cache,
bool HasRegularLTO) {
if (ThinLTO.ModuleMap.empty())
- return Error();
+ return Error::success();
if (Conf.CombinedIndexHook && !Conf.CombinedIndexHook(ThinLTO.CombinedIndex))
- return Error();
+ return Error::success();
// Collect for each module the list of function it defines (GUID ->
// Summary).
return true;
};
- return Error();
+ return Error::success();
}
namespace {
if (!C.CodeGenOnly)
if (!opt(C, TM.get(), 0, *Mod, /*IsThinLto=*/false))
- return Error();
+ return Error::success();
if (ParallelCodeGenParallelismLevel == 1) {
codegen(C, TM.get(), AddStream, 0, *Mod);
splitCodeGen(C, TM.get(), AddStream, ParallelCodeGenParallelismLevel,
std::move(Mod));
}
- return Error();
+ return Error::success();
}
Error lto::thinBackend(Config &Conf, unsigned Task, AddStreamFn AddStream,
if (Conf.CodeGenOnly) {
codegen(Conf, TM.get(), AddStream, Task, Mod);
- return Error();
+ return Error::success();
}
if (Conf.PreOptModuleHook && !Conf.PreOptModuleHook(Task, Mod))
- return Error();
+ return Error::success();
renameModuleForThinLTO(Mod, CombinedIndex);
thinLTOResolveWeakForLinkerModule(Mod, DefinedGlobals);
if (Conf.PostPromoteModuleHook && !Conf.PostPromoteModuleHook(Task, Mod))
- return Error();
+ return Error::success();
if (!DefinedGlobals.empty())
thinLTOInternalizeModule(Mod, DefinedGlobals);
if (Conf.PostInternalizeModuleHook &&
!Conf.PostInternalizeModuleHook(Task, Mod))
- return Error();
+ return Error::success();
auto ModuleLoader = [&](StringRef Identifier) {
assert(Mod.getContext().isODRUniquingDebugTypes() &&
return Err;
if (Conf.PostImportModuleHook && !Conf.PostImportModuleHook(Task, Mod))
- return Error();
+ return Error::success();
if (!opt(Conf, TM.get(), Task, Mod, /*IsThinLto=*/true))
- return Error();
+ return Error::success();
codegen(Conf, TM.get(), AddStream, Task, Mod);
- return Error();
+ return Error::success();
}
return malformedError(Msg + NameOrErr.get());
}
- Error Err;
+ Error Err = Error::success();
Child Ret(Parent, NextLoc, &Err);
if (Err)
return std::move(Err);
}
Expected<std::unique_ptr<Archive>> Archive::create(MemoryBufferRef Source) {
- Error Err;
+ Error Err = Error::success();
std::unique_ptr<Archive> Ret(new Archive(Source, Err));
if (Err)
return std::move(Err);
}
const char *Loc = Parent->getData().begin() + Offset;
- Error Err;
+ Error Err = Error::success();
Child C(Parent, Loc, &Err);
if (Err)
return std::move(Err);
llvm::Error llvm::object::isNotObjectErrorInvalidFileType(llvm::Error Err) {
if (auto Err2 =
- handleErrors(std::move(Err),
- [](std::unique_ptr<ECError> M) {
- // Try to handle 'M'. If successful, return a success value from
- // the handler.
- if (M->convertToErrorCode() == object_error::invalid_file_type)
- return Error::success();
+ handleErrors(std::move(Err), [](std::unique_ptr<ECError> M) -> Error {
+ // Try to handle 'M'. If successful, return a success value from
+ // the handler.
+ if (M->convertToErrorCode() == object_error::invalid_file_type)
+ return Error::success();
- // We failed to handle 'M' - return it from the handler.
- // This value will be passed back from catchErrors and
- // wind up in Err2, where it will be returned from this function.
- return Error(std::move(M));
- }))
+ // We failed to handle 'M' - return it from the handler.
+ // This value will be passed back from catchErrors and
+ // wind up in Err2, where it will be returned from this function.
+ return Error(std::move(M));
+ }))
return Err2;
return Err;
}
MachOObjectFile::create(MemoryBufferRef Object, bool IsLittleEndian,
bool Is64Bits, uint32_t UniversalCputype,
uint32_t UniversalIndex) {
- Error Err;
+ Error Err = Error::success();
std::unique_ptr<MachOObjectFile> Obj(
new MachOObjectFile(std::move(Object), IsLittleEndian,
Is64Bits, Err, UniversalCputype,
Expected<std::unique_ptr<MachOUniversalBinary>>
MachOUniversalBinary::create(MemoryBufferRef Source) {
- Error Err;
+ Error Err = Error::success();
std::unique_ptr<MachOUniversalBinary> Ret(
new MachOUniversalBinary(Source, Err));
if (Err)
StringRef Coverage;
uint8_t BytesInAddress;
support::endianness Endian;
- Error E;
+ Error E = Error::success();
consumeError(std::move(E));
if (ObjectBuffer->getBuffer().startswith(TestingFormatMagic))
// This is a special format used for testing.
Buffers.reserve(CurrentArchives.size());
for (const auto &CurrentArchive : CurrentArchives) {
- Error Err;
+ Error Err = Error::success();
for (auto Child : CurrentArchive->children(Err)) {
if (auto NameOrErr = Child.getName()) {
if (*NameOrErr == Filename) {
bool Filter = !Members.empty();
{
- Error Err;
+ Error Err = Error::success();
for (auto &C : OldArchive->children(Err)) {
Expected<StringRef> NameOrErr = C.getName();
failIfError(NameOrErr.takeError());
int InsertPos = -1;
StringRef PosName = sys::path::filename(RelPos);
if (OldArchive) {
- Error Err;
+ Error Err = Error::success();
for (auto &Child : OldArchive->children(Err)) {
int Pos = Ret.size();
Expected<StringRef> NameOrErr = Child.getName();
fail("error opening '" + ArchiveName + "': " + EC.message() + "!");
if (!EC) {
- Error Err;
+ Error Err = Error::success();
object::Archive Archive(Buf.get()->getMemBufferRef(), Err);
EC = errorToErrorCode(std::move(Err));
failIfError(EC,
Archives.push_back(std::move(*LibOrErr));
object::Archive &Lib = *Archives.back();
{
- Error Err;
+ Error Err = Error::success();
for (auto &Member : Lib.children(Err))
addMember(NewMembers, Member);
failIfError(std::move(Err));
}
static void dumpArchive(const Archive *Arc) {
- Error Err;
+ Error Err = Error::success();
for (auto &ArcC : Arc->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = ArcC.getAsBinary();
if (!ChildOrErr) {
std::deque<SmallString<32>> &UncompressedSections, StringRef &Name,
StringRef &Contents) {
if (!Name.startswith("zdebug_"))
- return Error();
+ return Error::success();
UncompressedSections.emplace_back();
uint64_t OriginalSize;
if (!zlib::isAvailable())
.str());
Name = Name.substr(1);
Contents = UncompressedSections.back();
- return Error();
+ return Error::success();
}
static Error handleSection(
StringRef &AbbrevSection, StringRef &CurCUIndexSection,
StringRef &CurTUIndexSection) {
if (Section.isBSS())
- return Error();
+ return Error::success();
if (Section.isVirtual())
- return Error();
+ return Error::success();
StringRef Name;
if (std::error_code Err = Section.getName(Name))
auto SectionPair = KnownSections.find(Name);
if (SectionPair == KnownSections.end())
- return Error();
+ return Error::success();
if (DWARFSectionKind Kind = SectionPair->second.second) {
auto Index = Kind - DW_SECT_INFO;
Out.SwitchSection(OutSection);
Out.EmitBytes(Contents);
}
- return Error();
+ return Error::success();
}
static Error
writeIndex(Out, MCOFI.getDwarfCUIndexSection(), ContributionOffsets,
IndexEntries);
- return Error();
+ return Error::success();
}
static int error(const Twine &Error, const Twine &Context) {
}
{
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(&Context);
if (!ChildOrErr) {
} else if (Expected<std::unique_ptr<Archive>> AOrErr =
I->getAsArchive()) {
std::unique_ptr<Archive> &A = *AOrErr;
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr =
C.getAsBinary(&Context);
} else if (Expected<std::unique_ptr<Archive>> AOrErr =
I->getAsArchive()) {
std::unique_ptr<Archive> &A = *AOrErr;
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr =
C.getAsBinary(&Context);
} else if (Expected<std::unique_ptr<Archive>> AOrErr =
I->getAsArchive()) {
std::unique_ptr<Archive> &A = *AOrErr;
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr =
C.getAsBinary(&Context);
static void printArchiveHeaders(StringRef Filename, Archive *A, bool verbose,
bool print_offset,
StringRef ArchitectureName = StringRef()) {
- Error Err;
+ Error Err = Error::success();
+ ;
for (const auto &C : A->children(Err, false))
printArchiveChild(Filename, C, verbose, print_offset, ArchitectureName);
if (ArchiveHeaders)
printArchiveHeaders(Filename, A, !NonVerbose, ArchiveMemberOffsets);
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
if (ArchiveHeaders)
printArchiveHeaders(Filename, A.get(), !NonVerbose,
ArchiveMemberOffsets, ArchitectureName);
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
if (ArchiveHeaders)
printArchiveHeaders(Filename, A.get(), !NonVerbose,
ArchiveMemberOffsets);
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
if (ArchiveHeaders)
printArchiveHeaders(Filename, A.get(), !NonVerbose,
ArchiveMemberOffsets, ArchitectureName);
- Error Err;
+ Error Err = Error::success();
for (auto &C : A->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
/// @brief Dump each object file in \a a;
static void DumpArchive(const Archive *a) {
- Error Err;
+ Error Err = Error::success();
for (auto &C : a->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
/// @brief Dumps each object file in \a Arc;
static void dumpArchive(const Archive *Arc) {
- Error Err;
+ Error Err = Error::success();
for (auto &Child : Arc->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
if (!ChildOrErr) {
if (Archive *a = dyn_cast<Archive>(&Bin)) {
// This is an archive. Iterate over each member and display its sizes.
- Error Err;
+ Error Err = Error::success();
for (auto &C : a->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
std::unique_ptr<Archive> &UA = *AOrErr;
// This is an archive. Iterate over each member and display its
// sizes.
- Error Err;
+ Error Err = Error::success();
for (auto &C : UA->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
std::unique_ptr<Archive> &UA = *AOrErr;
// This is an archive. Iterate over each member and display its
// sizes.
- Error Err;
+ Error Err = Error::success();
for (auto &C : UA->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
I->getAsArchive()) {
std::unique_ptr<Archive> &UA = *AOrErr;
// This is an archive. Iterate over each member and display its sizes.
- Error Err;
+ Error Err = Error::success();
for (auto &C : UA->children(Err)) {
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
if (!ChildOrErr) {
Out << YAMLSleds;
}
-static CommandRegistration Unused(&Extract, [] {
- Error Err;
+static CommandRegistration Unused(&Extract, []() -> Error {
+ Error Err = Error::success();
xray::InstrumentationMapExtractor Extractor(
ExtractInput, InstrumentationMapExtractor::InputFormats::ELF, Err);
if (Err)
static void
visitObjectFiles(const object::Archive &A,
function_ref<void(const object::ObjectFile &)> Fn) {
- Error Err;
+ Error Err = Error::success();
for (auto &C : A.children(Err)) {
Expected<std::unique_ptr<object::Binary>> ChildOrErr = C.getAsBinary();
failIfError(ChildOrErr);
char CustomSubError::ID = 0;
-static Error handleCustomError(const CustomError &CE) { return Error(); }
+static Error handleCustomError(const CustomError &CE) {
+ return Error::success();
+}
static void handleCustomErrorVoid(const CustomError &CE) {}
static Error handleCustomErrorUP(std::unique_ptr<CustomError> CE) {
- return Error();
+ return Error::success();
}
static void handleCustomErrorUPVoid(std::unique_ptr<CustomError> CE) {}