diff options
Diffstat (limited to 'lldb/source/API/SBError.cpp')
-rw-r--r-- | lldb/source/API/SBError.cpp | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/lldb/source/API/SBError.cpp b/lldb/source/API/SBError.cpp index 9553b6f4166..3e91ea07b9b 100644 --- a/lldb/source/API/SBError.cpp +++ b/lldb/source/API/SBError.cpp @@ -10,6 +10,7 @@ #include "lldb/API/SBError.h" #include "lldb/API/SBStream.h" #include "lldb/Core/Error.h" +#include "lldb/Core/Log.h" #include <stdarg.h> @@ -20,13 +21,27 @@ using namespace lldb_private; SBError::SBError () : m_opaque_ap () { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); + + if (log) + log->Printf ("SBError::SBError () ==> this = %p", this); } SBError::SBError (const SBError &rhs) : m_opaque_ap () { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); + if (rhs.IsValid()) m_opaque_ap.reset (new Error(*rhs)); + + if (log) + { + SBStream sstr; + GetDescription (sstr); + log->Printf ("SBError::SBError (const SBError &rhs) rhs.m_opaque_ap.get() = %p ==> this = %p (%s)", + (rhs.IsValid() ? rhs.m_opaque_ap.get() : NULL), this, sstr.GetData()); + } } @@ -37,6 +52,16 @@ SBError::~SBError() const SBError & SBError::operator = (const SBError &rhs) { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); + + if (log) + { + SBStream sstr; + rhs.GetDescription (sstr); + log->Printf ("SBError::operator= (const SBError &rhs) rhs.m_opaque_ap.get() = %p (%s)", + (rhs.IsValid() ? rhs.m_opaque_ap.get() : NULL), sstr.GetData()); + } + if (rhs.IsValid()) { if (m_opaque_ap.get()) @@ -48,6 +73,10 @@ SBError::operator = (const SBError &rhs) { m_opaque_ap.reset(); } + + if (log) + log->Printf ("SBError::operator= ==> this = %p", this); + return *this; } @@ -70,9 +99,19 @@ SBError::Clear () bool SBError::Fail () const { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); + + if (log) + log->Printf ("SBError::Fail ()"); + + bool ret_value = false; if (m_opaque_ap.get()) - return m_opaque_ap->Fail(); - return false; + ret_value = m_opaque_ap->Fail(); + + if (log) + log->Printf ("SBError::Fail ==> %s", (ret_value ? "true" : "false")); + + return ret_value; } bool @@ -198,3 +237,22 @@ SBError::GetDescription (SBStream &description) return true; } + +bool +SBError::GetDescription (SBStream &description) const +{ + if (m_opaque_ap.get()) + { + if (Success()) + description.Printf ("Status: Success"); + else + { + const char * err_string = GetCString(); + description.Printf ("Status: Error: %s", (err_string != NULL ? err_string : "")); + } + } + else + description.Printf ("No value"); + + return true; +} |