[Lldb-commits] [lldb] r203330 - Add API logging to the SBQueue/SBQueueItem/SBThread calls.

Jason Molenda jmolenda at apple.com
Fri Mar 7 17:34:55 PST 2014


Author: jmolenda
Date: Fri Mar  7 19:34:55 2014
New Revision: 203330

URL: http://llvm.org/viewvc/llvm-project?rev=203330&view=rev
Log:
Add API logging to the SBQueue/SBQueueItem/SBThread calls.

Modified:
    lldb/trunk/source/API/SBQueue.cpp
    lldb/trunk/source/API/SBQueueItem.cpp
    lldb/trunk/source/API/SBThread.cpp

Modified: lldb/trunk/source/API/SBQueue.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBQueue.cpp?rev=203330&r1=203329&r2=203330&view=diff
==============================================================================
--- lldb/trunk/source/API/SBQueue.cpp (original)
+++ lldb/trunk/source/API/SBQueue.cpp Fri Mar  7 19:34:55 2014
@@ -301,13 +301,21 @@ SBQueue::~SBQueue()
 bool
 SBQueue::IsValid() const
 {
-    return m_opaque_sp->IsValid();
+    bool is_valid = m_opaque_sp->IsValid ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::IsValid() == %s", m_opaque_sp->GetQueueID(),
+                    is_valid ? "true" : "false");
+    return is_valid;
 }
 
 
 void
 SBQueue::Clear ()
 {
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::Clear()", m_opaque_sp->GetQueueID());
     m_opaque_sp->Clear();
 }
 
@@ -321,43 +329,71 @@ SBQueue::SetQueue (const QueueSP& queue_
 lldb::queue_id_t
 SBQueue::GetQueueID () const
 {
-    return m_opaque_sp->GetQueueID ();
+    lldb::queue_id_t qid = m_opaque_sp->GetQueueID ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetQueueID() == 0x%" PRIx64, m_opaque_sp->GetQueueID(), (uint64_t) qid);
+    return qid;
 }
 
 uint32_t
 SBQueue::GetIndexID () const
 {
-    return m_opaque_sp->GetIndexID ();
+    uint32_t index_id = m_opaque_sp->GetIndexID ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetIndexID() == 0x%" PRIx32, m_opaque_sp->GetQueueID(), index_id);
+    return index_id;
 }
 
 const char *
 SBQueue::GetName () const
 {
-    return m_opaque_sp->GetName ();
+    const char *name = m_opaque_sp->GetName ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetName() == %s", m_opaque_sp->GetQueueID(), 
+                     name ? name : "");
+    return name;
 }
 
 uint32_t
 SBQueue::GetNumThreads ()
 {
-    return m_opaque_sp->GetNumThreads ();
+    uint32_t numthreads = m_opaque_sp->GetNumThreads ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetNumThreads() == %d", m_opaque_sp->GetQueueID(), numthreads);
+    return numthreads;
 }
 
 SBThread
 SBQueue::GetThreadAtIndex (uint32_t idx)
 {
-    return m_opaque_sp->GetThreadAtIndex (idx);
+    SBThread th = m_opaque_sp->GetThreadAtIndex (idx);
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetThreadAtIndex(%d)", m_opaque_sp->GetQueueID(), idx);
+    return th;
 }
 
 
 uint32_t
 SBQueue::GetNumPendingItems ()
 {
-    return m_opaque_sp->GetNumPendingItems ();
+    uint32_t pending_items = m_opaque_sp->GetNumPendingItems ();
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetNumPendingItems() == %d", m_opaque_sp->GetQueueID(), pending_items);
+    return pending_items;
 }
 
 SBQueueItem
 SBQueue::GetPendingItemAtIndex (uint32_t idx)
 {
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueue(0x%" PRIx64 ")::GetPendingItemAtIndex(%d)", m_opaque_sp->GetQueueID(),  idx);
     return m_opaque_sp->GetPendingItemAtIndex (idx);
 }
 

Modified: lldb/trunk/source/API/SBQueueItem.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBQueueItem.cpp?rev=203330&r1=203329&r2=203330&view=diff
==============================================================================
--- lldb/trunk/source/API/SBQueueItem.cpp (original)
+++ lldb/trunk/source/API/SBQueueItem.cpp Fri Mar  7 19:34:55 2014
@@ -14,6 +14,7 @@
 #include "lldb/API/SBQueueItem.h"
 #include "lldb/API/SBThread.h"
 #include "lldb/Core/Address.h"
+#include "lldb/Core/Log.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/QueueItem.h"
 #include "lldb/Target/Thread.h"
@@ -45,13 +46,20 @@ SBQueueItem::~SBQueueItem()
 bool
 SBQueueItem::IsValid() const
 {
-    return m_queue_item_sp.get() != NULL;
+    bool is_valid = m_queue_item_sp.get() != NULL;
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueueItem(%p)::IsValid() == %s", m_queue_item_sp.get(), is_valid ? "true" : "false");
+    return is_valid;
 }
 
 
 void
 SBQueueItem::Clear ()
 {
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+    if (log)
+        log->Printf("SBQueueItem(%p)::Clear()", m_queue_item_sp.get());
     m_queue_item_sp.reset();
 }
 
@@ -67,10 +75,13 @@ lldb::QueueItemKind
 SBQueueItem::GetKind () const
 {
     QueueItemKind result = eQueueItemKindUnknown;
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
     if (m_queue_item_sp)
     {
         result = m_queue_item_sp->GetKind ();
     }
+    if (log)
+        log->Printf("SBQueueItem(%p)::GetKind() == %d", m_queue_item_sp.get(), (int) result);
     return result;
 }
 
@@ -87,10 +98,20 @@ SBAddress
 SBQueueItem::GetAddress () const
 {
     SBAddress result;
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
     if (m_queue_item_sp)
     {
         result.SetAddress (&m_queue_item_sp->GetAddress());
     }
+    if (log)
+    {
+        StreamString sstr;
+        const Address *addr = result.get();
+        if (addr)
+            addr->Dump (&sstr, NULL, Address::DumpStyleModuleWithFileAddress, Address::DumpStyleInvalid, 4);
+        log->Printf ("SBQueueItem(%p)::GetAddress() == SBAddress(%p): %s",
+                     m_queue_item_sp.get(), result.get(), sstr.GetData());
+    }
     return result;
 }
 
@@ -107,6 +128,7 @@ SBThread
 SBQueueItem::GetExtendedBacktraceThread (const char *type)
 {
     SBThread result;
+    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
     if (m_queue_item_sp)
     {
         ProcessSP process_sp = m_queue_item_sp->GetProcessSP();
@@ -122,6 +144,13 @@ SBQueueItem::GetExtendedBacktraceThread
                 // object
                 process_sp->GetExtendedThreadList().AddThread (thread_sp);
                 result.SetThread (thread_sp);
+                if (log)
+                {
+                    const char *queue_name = thread_sp->GetQueueName();
+                    if (queue_name == NULL)
+                        queue_name = "";
+                    log->Printf ("SBQueueItem(%p)::GetExtendedBacktraceThread() = new extended Thread created (%p) with queue_id 0x%" PRIx64 " queue name '%s'", m_queue_item_sp.get(), thread_sp.get(), (uint64_t) thread_sp->GetQueueID(), queue_name);
+                }
             }
         }
     }

Modified: lldb/trunk/source/API/SBThread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBThread.cpp?rev=203330&r1=203329&r2=203330&view=diff
==============================================================================
--- lldb/trunk/source/API/SBThread.cpp (original)
+++ lldb/trunk/source/API/SBThread.cpp Fri Mar  7 19:34:55 2014
@@ -1330,6 +1330,10 @@ SBThread::GetExtendedBacktraceThread (co
         }
     }
 
+    if (log && sb_origin_thread.IsValid() == false)
+    {
+        log->Printf("SBThread(%p)::GetExtendedBacktraceThread() is not returning a Valid thread", exe_ctx.GetThreadPtr());
+    }
     return sb_origin_thread;
 }
 





More information about the lldb-commits mailing list