Write _PyUnicode_Dump() to help debugging
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 8f710bd..00572a7 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -515,6 +515,29 @@
printf("compact data %p\n", _PyUnicode_COMPACT_DATA(unicode));
return PyUnicode_DATA(unicode);
}
+
+void
+_PyUnicode_Dump(PyObject *op)
+{
+ PyASCIIObject *ascii = (PyASCIIObject *)op;
+ printf("%s: len=%zu, wstr=%p",
+ unicode_kind_name(op),
+ ascii->length,
+ ascii->wstr);
+ if (!ascii->state.ascii) {
+ PyCompactUnicodeObject *compact = (PyCompactUnicodeObject *)op;
+ printf(" (%zu), utf8=%p (%zu)",
+ compact->wstr_length,
+ compact->utf8,
+ compact->utf8_length);
+ }
+ if (!ascii->state.compact) {
+ PyUnicodeObject *unicode = (PyUnicodeObject *)op;
+ printf(", data=%p",
+ unicode->data.any);
+ }
+ printf("\n");
+}
#endif
PyObject *