Replace Py_FatalError() with _PyObject_ASSERT_FAILED_MSG() in object.c and typeobject.c to also dump the involved Python object on a fatal error. It should ease debug when such fatal error occurs. If the double linked list is inconsistent, _Py_ForgetReference() no longer dumps previous and next objects in the fatal error, it now only dumps the current object. It should prevent to get a crash when dumping an invalid object, before writing the error message. Enhance _Py_ForgetReference() error messages; _PyObject_ASSERT_FAILED_MSG() logs the "_Py_ForgetReference" function name.
vstinner
changed the title
Replace Py_FatalError() with _PyObject_ASSERT_FAILED_MSG()
bpo-38631: Replace Py_FatalError() with _PyObject_ASSERT_FAILED_MSG()
vstinner deleted the vstinner:assert_failed branch