[Lldb-commits] [lldb] bfb2783 - [lldb/Reproducers] Make SBStream::Print an API instead of a SWIG extension

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Wed May 20 10:37:26 PDT 2020


Author: Jonas Devlieghere
Date: 2020-05-20T10:37:18-07:00
New Revision: bfb278372633c50ae595f0b89241a143090c967e

URL: https://github.com/llvm/llvm-project/commit/bfb278372633c50ae595f0b89241a143090c967e
DIFF: https://github.com/llvm/llvm-project/commit/bfb278372633c50ae595f0b89241a143090c967e.diff

LOG: [lldb/Reproducers] Make SBStream::Print an API instead of a SWIG extension

This makes it possible to instrument the call for the reproducers. This
fixes TestStructuredDataAPI.py with reproducer replay.

Differential revision: https://reviews.llvm.org/D80312

Added: 
    

Modified: 
    lldb/bindings/interface/SBStream.i
    lldb/include/lldb/API/SBStream.h
    lldb/source/API/SBStream.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/bindings/interface/SBStream.i b/lldb/bindings/interface/SBStream.i
index 31fb3802bf62..edd67f87c3fb 100644
--- a/lldb/bindings/interface/SBStream.i
+++ b/lldb/bindings/interface/SBStream.i
@@ -62,14 +62,8 @@ public:
     size_t
     GetSize();
 
-    // wrapping the variadic Printf() with a plain Print()
-    // because it is hard to support varargs in SWIG bridgings
-    %extend {
-        void Print (const char* str)
-        {
-            self->Printf("%s", str);
-        }
-    }
+    void
+    Print (const char* str);
 
     void
     RedirectToFile (const char *path, bool append);

diff  --git a/lldb/include/lldb/API/SBStream.h b/lldb/include/lldb/API/SBStream.h
index 7f0ec49b81c5..6b3753d45aa2 100644
--- a/lldb/include/lldb/API/SBStream.h
+++ b/lldb/include/lldb/API/SBStream.h
@@ -37,6 +37,8 @@ class LLDB_API SBStream {
 
   void Printf(const char *format, ...) __attribute__((format(printf, 2, 3)));
 
+  void Print(const char *str);
+
   void RedirectToFile(const char *path, bool append);
 
   void RedirectToFile(lldb::SBFile file);

diff  --git a/lldb/source/API/SBStream.cpp b/lldb/source/API/SBStream.cpp
index 5d77410434a2..0f49c5111f28 100644
--- a/lldb/source/API/SBStream.cpp
+++ b/lldb/source/API/SBStream.cpp
@@ -60,6 +60,12 @@ size_t SBStream::GetSize() {
   return static_cast<StreamString *>(m_opaque_up.get())->GetSize();
 }
 
+void SBStream::Print(const char *str) {
+  LLDB_RECORD_METHOD(void, SBStream, Print, (const char *), str);
+
+  Printf("%s", str);
+}
+
 void SBStream::Printf(const char *format, ...) {
   if (!format)
     return;
@@ -204,6 +210,7 @@ void RegisterMethods<SBStream>(Registry &R) {
   LLDB_REGISTER_METHOD(void, SBStream, RedirectToFileHandle, (FILE *, bool));
   LLDB_REGISTER_METHOD(void, SBStream, RedirectToFileDescriptor, (int, bool));
   LLDB_REGISTER_METHOD(void, SBStream, Clear, ());
+  LLDB_REGISTER_METHOD(void, SBStream, Print, (const char *));
 }
 
 }


        


More information about the lldb-commits mailing list