summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBError.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBError.cpp')
-rw-r--r--lldb/source/API/SBError.cpp62
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;
+}
OpenPOWER on IntegriCloud