diff options
author | dim <dim@FreeBSD.org> | 2015-09-06 14:32:30 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-09-06 14:32:30 +0000 |
commit | 80b639cd40df427b9e325318efeec2d885a65f62 (patch) | |
tree | 94980f450aa3daec3e1fec217374704ad62cfe45 /source/Host/common | |
parent | 8037fa4ee916fa20b3c63cbf531f4ee7e1c76138 (diff) | |
download | FreeBSD-src-80b639cd40df427b9e325318efeec2d885a65f62.zip FreeBSD-src-80b639cd40df427b9e325318efeec2d885a65f62.tar.gz |
Vendor import of (stripped) lldb trunk r242221:
https://llvm.org/svn/llvm-project/lldb/trunk@242221
Diffstat (limited to 'source/Host/common')
-rw-r--r-- | source/Host/common/Host.cpp | 10 | ||||
-rw-r--r-- | source/Host/common/NativeProcessProtocol.cpp | 22 | ||||
-rw-r--r-- | source/Host/common/StringConvert.cpp | 142 |
3 files changed, 108 insertions, 66 deletions
diff --git a/source/Host/common/Host.cpp b/source/Host/common/Host.cpp index 20d6355..94c78a0 100644 --- a/source/Host/common/Host.cpp +++ b/source/Host/common/Host.cpp @@ -1070,13 +1070,9 @@ Host::SetCrashDescription (const char *description) #endif -#if !defined (__linux__) && !defined (__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined (__NetBSD__) - -const lldb_private::UnixSignalsSP& -Host::GetUnixSignals () +const UnixSignalsSP & +Host::GetUnixSignals() { - static UnixSignalsSP s_unix_signals_sp (new UnixSignals ()); + static const auto s_unix_signals_sp = UnixSignals::Create(HostInfo::GetArchitecture()); return s_unix_signals_sp; } - -#endif diff --git a/source/Host/common/NativeProcessProtocol.cpp b/source/Host/common/NativeProcessProtocol.cpp index 35003f5..818d69b 100644 --- a/source/Host/common/NativeProcessProtocol.cpp +++ b/source/Host/common/NativeProcessProtocol.cpp @@ -441,3 +441,25 @@ NativeProcessProtocol::Terminate () { // Default implementation does nothing. } + +#ifndef __linux__ +// These need to be implemented to support lldb-gdb-server on a given platform. Stubs are +// provided to make the rest of the code link on non-supported platforms. + +Error +NativeProcessProtocol::Launch (ProcessLaunchInfo &launch_info, + NativeDelegate &native_delegate, + NativeProcessProtocolSP &process_sp) +{ + llvm_unreachable("Platform has no NativeProcessProtocol support"); +} + +Error +NativeProcessProtocol::Attach (lldb::pid_t pid, + NativeDelegate &native_delegate, + NativeProcessProtocolSP &process_sp) +{ + llvm_unreachable("Platform has no NativeProcessProtocol support"); +} + +#endif diff --git a/source/Host/common/StringConvert.cpp b/source/Host/common/StringConvert.cpp index 0a8e75f..c4ff675 100644 --- a/source/Host/common/StringConvert.cpp +++ b/source/Host/common/StringConvert.cpp @@ -15,79 +15,103 @@ // Project includes #include "lldb/Host/StringConvert.h" -namespace lldb_private { - -namespace StringConvert { - -int32_t -ToSInt32 (const char *s, int32_t fail_value, int base, bool *success_ptr) +namespace lldb_private { - if (s && s[0]) + namespace StringConvert { - char *end = nullptr; - const long sval = ::strtol (s, &end, base); - if (*end == '\0') + + int32_t + ToSInt32 (const char *s, int32_t fail_value, int base, bool *success_ptr) { + if (s && s[0]) + { + char *end = nullptr; + const long sval = ::strtol (s, &end, base); + if (*end == '\0') + { + if (success_ptr) + *success_ptr = ((sval <= INT32_MAX) && (sval >= INT32_MIN)); + return (int32_t)sval; // All characters were used, return the result + } + } if (success_ptr) - *success_ptr = ((sval <= INT32_MAX) && (sval >= INT32_MIN)); - return (int32_t)sval; // All characters were used, return the result + *success_ptr = false; + return fail_value; } - } - if (success_ptr) *success_ptr = false; - return fail_value; -} -uint32_t -ToUInt32 (const char *s, uint32_t fail_value, int base, bool *success_ptr) -{ - if (s && s[0]) - { - char *end = nullptr; - const unsigned long uval = ::strtoul (s, &end, base); - if (*end == '\0') + uint32_t + ToUInt32 (const char *s, uint32_t fail_value, int base, bool *success_ptr) { + if (s && s[0]) + { + char *end = nullptr; + const unsigned long uval = ::strtoul (s, &end, base); + if (*end == '\0') + { + if (success_ptr) + *success_ptr = (uval <= UINT32_MAX); + return (uint32_t)uval; // All characters were used, return the result + } + } if (success_ptr) - *success_ptr = (uval <= UINT32_MAX); - return (uint32_t)uval; // All characters were used, return the result + *success_ptr = false; + return fail_value; } - } - if (success_ptr) *success_ptr = false; - return fail_value; -} -int64_t -ToSInt64 (const char *s, int64_t fail_value, int base, bool *success_ptr) -{ - if (s && s[0]) - { - char *end = nullptr; - int64_t uval = ::strtoll (s, &end, base); - if (*end == '\0') + int64_t + ToSInt64 (const char *s, int64_t fail_value, int base, bool *success_ptr) { - if (success_ptr) *success_ptr = true; - return uval; // All characters were used, return the result + if (s && s[0]) + { + char *end = nullptr; + int64_t uval = ::strtoll (s, &end, base); + if (*end == '\0') + { + if (success_ptr) + *success_ptr = true; + return uval; // All characters were used, return the result + } + } + if (success_ptr) + *success_ptr = false; + return fail_value; } - } - if (success_ptr) *success_ptr = false; - return fail_value; -} -uint64_t -ToUInt64 (const char *s, uint64_t fail_value, int base, bool *success_ptr) -{ - if (s && s[0]) - { - char *end = nullptr; - uint64_t uval = ::strtoull (s, &end, base); - if (*end == '\0') + uint64_t + ToUInt64 (const char *s, uint64_t fail_value, int base, bool *success_ptr) { - if (success_ptr) *success_ptr = true; - return uval; // All characters were used, return the result + if (s && s[0]) + { + char *end = nullptr; + uint64_t uval = ::strtoull (s, &end, base); + if (*end == '\0') + { + if (success_ptr) + *success_ptr = true; + return uval; // All characters were used, return the result + } + } + if (success_ptr) *success_ptr = false; + return fail_value; } - } - if (success_ptr) *success_ptr = false; - return fail_value; -} -} + double + ToDouble (const char *s, double fail_value, bool *success_ptr) + { + if (s && s[0]) + { + char *end = nullptr; + double val = strtod (s, &end); + if (*end == '\0') + { + if (success_ptr) + *success_ptr = true; + return val; // All characters were used, return the result + } + } + if (success_ptr) + *success_ptr = false; + return fail_value; + } + } } |