[Python-checkins] bpo-38070: Enhance _PyObject_Dump() (GH-16243)

Victor Stinner webhook-mailer at python.org
Tue Sep 17 17:36:32 EDT 2019


https://github.com/python/cpython/commit/b39afb78768418d9405c4b528c80fa968ccc974d
commit: b39afb78768418d9405c4b528c80fa968ccc974d
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019年09月17日T23:36:28+02:00
summary:
bpo-38070: Enhance _PyObject_Dump() (GH-16243)
_PyObject_Dump() now dumps the object address for freed objects and
objects with ob_type=NULL.
files:
M Objects/object.c
diff --git a/Objects/object.c b/Objects/object.c
index 7f2c23a9ff8c..43ed4c59a71b 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -464,7 +464,7 @@ void
 _PyObject_Dump(PyObject* op)
 {
 if (op == NULL) {
- fprintf(stderr, "<NULL object>\n");
+ fprintf(stderr, "<object at NULL>\n");
 fflush(stderr);
 return;
 }
@@ -472,7 +472,7 @@ _PyObject_Dump(PyObject* op)
 if (_PyObject_IsFreed(op)) {
 /* It seems like the object memory has been freed:
 don't access it to prevent a segmentation fault. */
- fprintf(stderr, "<Freed object>\n");
+ fprintf(stderr, "<object at %p is freed>\n", op);
 return;
 }
 
@@ -2160,18 +2160,19 @@ _PyObject_AssertFailed(PyObject *obj, const char *expr, const char *msg,
 fflush(stderr);
 
 if (obj == NULL) {
- fprintf(stderr, "<NULL object>\n");
+ fprintf(stderr, "<object at NULL>\n");
 }
 else if (_PyObject_IsFreed(obj)) {
 /* It seems like the object memory has been freed:
 don't access it to prevent a segmentation fault. */
- fprintf(stderr, "<object: freed>\n");
+ fprintf(stderr, "<object at %p is freed>\n", obj);
 }
 else if (Py_TYPE(obj) == NULL) {
- fprintf(stderr, "<object: ob_type=NULL>\n");
+ fprintf(stderr, "<object at %p: ob_type=NULL>\n", obj);
 }
 else if (_PyObject_IsFreed((PyObject *)Py_TYPE(obj))) {
- fprintf(stderr, "<object: freed type %p>\n", (void *)Py_TYPE(obj));
+ fprintf(stderr, "<object at %p: type at %p is freed>\n",
+ obj, (void *)Py_TYPE(obj));
 }
 else {
 /* Display the traceback where the object has been allocated.


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /