diff options
Diffstat (limited to 'lldb/source/API/SBFileSpec.cpp')
-rw-r--r-- | lldb/source/API/SBFileSpec.cpp | 84 |
1 files changed, 81 insertions, 3 deletions
diff --git a/lldb/source/API/SBFileSpec.cpp b/lldb/source/API/SBFileSpec.cpp index fb504f233f9..8f0b067ea0a 100644 --- a/lldb/source/API/SBFileSpec.cpp +++ b/lldb/source/API/SBFileSpec.cpp @@ -10,6 +10,7 @@ #include "lldb/API/SBFileSpec.h" #include "lldb/API/SBStream.h" #include "lldb/Core/FileSpec.h" +#include "lldb/Core/Log.h" using namespace lldb; using namespace lldb_private; @@ -19,11 +20,25 @@ using namespace lldb_private; SBFileSpec::SBFileSpec () : m_opaque_ap() { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); + + if (log) + log->Printf ("SBFileSpec::SBFileSpec () ==> this = %p", this); } SBFileSpec::SBFileSpec (const SBFileSpec &rhs) : m_opaque_ap() { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); + + if (log) + { + SBStream sstr; + rhs.GetDescription (sstr); + log->Printf ("SBFileSpec::SBFileSpec (const SBFileSpec &rhs) rhs.m_opaque_ap.get() = %p (%s) ==> this = %p", + rhs.m_opaque_ap.get(), sstr.GetData(), this); + } + if (rhs.m_opaque_ap.get()) m_opaque_ap.reset (new FileSpec (rhs.get())); } @@ -37,6 +52,12 @@ SBFileSpec::SBFileSpec (const char *path) : SBFileSpec::SBFileSpec (const char *path, bool resolve) : m_opaque_ap(new FileSpec (path, resolve)) { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API | LIBLLDB_LOG_VERBOSE); + + if (log) + log->Printf ("SBFileSpec::SBFileSpec (const char *path, bool resolve) path = '%s', resolve = %s ==> " + "this = %p (m_opaque_ap.get() = %p)", path, (resolve ? "true" : "false"), this, + m_opaque_ap.get()); } SBFileSpec::~SBFileSpec () @@ -63,9 +84,19 @@ SBFileSpec::IsValid() const bool SBFileSpec::Exists () const { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); + + if (log) + log->Printf ("SBFileSpec::Exists ()"); + + bool result = false; if (m_opaque_ap.get()) - return m_opaque_ap->Exists(); - return false; + result = m_opaque_ap->Exists(); + + if (log) + log->Printf ("SBFileSpec::Exists ==> %s", (result ? "true" : "false")); + + return result; } bool @@ -85,8 +116,21 @@ SBFileSpec::ResolvePath (const char *src_path, char *dst_path, size_t dst_len) const char * SBFileSpec::GetFilename() const { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); + + if (log) + log->Printf ("SBFileSpec::GetFilename ()"); + if (m_opaque_ap.get()) + { + if (log) + log->Printf ("SBFileSpec::GetFilename ==> %s", m_opaque_ap->GetFilename().AsCString()); return m_opaque_ap->GetFilename().AsCString(); + } + + if (log) + log->Printf ("SBFileSpec::GetFilename ==> NULL"); + return NULL; } @@ -101,8 +145,22 @@ SBFileSpec::GetDirectory() const uint32_t SBFileSpec::GetPath (char *dst_path, size_t dst_len) const { + Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API); + + if (log) + log->Printf ("SBFileSpec::GetPath (dst_path, dst_len)"); + + uint32_t result; if (m_opaque_ap.get()) - return m_opaque_ap->GetPath (dst_path, dst_len); + { + result = m_opaque_ap->GetPath (dst_path, dst_len); + if (log) + log->Printf ("SBFileSpec::GetPath ==> %s (%d)", dst_path, result); + return result; + } + + if (log) + log->Printf ("SBFileSpec::GetPath ==> NULL (0)"); if (dst_path && dst_len) *dst_path = '\0'; @@ -164,3 +222,23 @@ SBFileSpec::GetDescription (SBStream &description) return true; } + +bool +SBFileSpec::GetDescription (SBStream &description) const +{ + if (m_opaque_ap.get()) + { + const char *filename = GetFilename(); + const char *dir_name = GetDirectory(); + if (!filename && !dir_name) + description.Printf ("No value"); + else if (!dir_name) + description.Printf ("%s", filename); + else + description.Printf ("%s/%s", dir_name, filename); + } + else + description.Printf ("No value"); + + return true; +} |