]> granicus.if.org Git - python/commitdiff
Write _PyUnicode_Dump() to help debugging
authorVictor Stinner <victor.stinner@haypocalc.com>
Mon, 3 Oct 2011 00:59:31 +0000 (02:59 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Mon, 3 Oct 2011 00:59:31 +0000 (02:59 +0200)
Objects/unicodeobject.c

index 8f710bd29d24a29cdcf78c15a406afe5d4dae59e..00572a79836c0c62a798230f09ef70aed71a37b2 100644 (file)
@@ -515,6 +515,29 @@ void *_PyUnicode_data(void *unicode){
     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 *