[Lldb-commits] [PATCH] D88302: [lldb] Remove nothreadallow from SWIG's __str__ wrappers to work around a Python>=3.7 crash

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Sep 28 01:11:08 PDT 2020


This revision was automatically updated to reflect the committed changes.
Closed by commit rG070a1d562b30: [lldb] Remove nothreadallow from SWIG's __str__ wrappers to work around a… (authored by teemperor).
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88302/new/

https://reviews.llvm.org/D88302

Files:
  lldb/bindings/macros.swig
  lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/Makefile
  lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
  lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/main.cpp


Index: lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/main.cpp
===================================================================
--- /dev/null
+++ lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/main.cpp
@@ -0,0 +1,8 @@
+#include <deque>
+
+int main() {
+  std::deque<int> empty;
+  std::deque<int> deque_1 = {1};
+  std::deque<int> deque_3 = {3, 1, 2};
+  return empty.size() + deque_1.front() + deque_3.front(); // break here
+}
Index: lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
===================================================================
--- /dev/null
+++ lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
@@ -0,0 +1,25 @@
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class LibcxxDequeDataFormatterTestCase(TestBase):
+
+    mydir = TestBase.compute_mydir(__file__)
+
+    @add_test_categories(["libc++"])
+    def test(self):
+        self.build()
+        lldbutil.run_to_source_breakpoint(self, "break here",
+                                          lldb.SBFileSpec("main.cpp"))
+
+        self.expect_expr("empty", result_children=[])
+        self.expect_expr("deque_1", result_children=[
+            ValueCheck(name="[0]", value="1"),
+        ])
+        self.expect_expr("deque_3", result_children=[
+            ValueCheck(name="[0]", value="3"),
+            ValueCheck(name="[1]", value="1"),
+            ValueCheck(name="[2]", value="2")
+        ])
Index: lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/Makefile
===================================================================
--- /dev/null
+++ lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/Makefile
@@ -0,0 +1,5 @@
+CXX_SOURCES := main.cpp
+
+USE_LIBCPP := 1
+
+include Makefile.rules
Index: lldb/bindings/macros.swig
===================================================================
--- lldb/bindings/macros.swig
+++ lldb/bindings/macros.swig
@@ -1,6 +1,5 @@
 %define STRING_EXTENSION_LEVEL(Class, Level)
 %extend {
-  %nothreadallow;
   std::string lldb:: ## Class ## ::__str__(){
     lldb::SBStream stream;
     $self->GetDescription (stream, Level);
@@ -11,13 +10,11 @@
     }
     return std::string(desc, desc_len);
   }
-  %clearnothreadallow;
 }
 %enddef
 
 %define STRING_EXTENSION(Class)
 %extend {
-  %nothreadallow;
   std::string lldb:: ## Class ## ::__str__(){
     lldb::SBStream stream;
     $self->GetDescription (stream);
@@ -28,6 +25,5 @@
     }
     return std::string(desc, desc_len);
   }
-  %clearnothreadallow;
 }
 %enddef


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88302.294619.patch
Type: text/x-patch
Size: 2769 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200928/03c71fed/attachment.bin>


More information about the lldb-commits mailing list