#3632: the "pyo" macro from gdbinit can now run when the GIL is released.

Patch by haypo.
diff --git a/Misc/NEWS b/Misc/NEWS
index 67f1bc0..9567505 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -185,6 +185,9 @@
 C-API
 -----
 
+- Issue #3632: from the gdb debugger, the 'pyo' macro can now be called when
+  the GIL is released, or owned by another thread.
+
 - Issue #4122: On Windows, fix a compilation error when using the
   Py_UNICODE_ISSPACE macro in an extension module.
 
diff --git a/Objects/object.c b/Objects/object.c
index 9cd34b8..c882cf2 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -331,8 +331,11 @@
 	if (op == NULL)
 		fprintf(stderr, "NULL\n");
 	else {
+		PyGILState_STATE gil;
 		fprintf(stderr, "object  : ");
+		gil = PyGILState_Ensure();
 		(void)PyObject_Print(op, stderr, 0);
+		PyGILState_Release(gil);
 		/* XXX(twouters) cast refcount to long until %zd is
 		   universally available */
 		fprintf(stderr, "\n"