diff options
author | Antoine Pitrou <pitrou@free.fr> | 2017-12-31 21:35:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-31 21:35:22 (GMT) |
commit | 14709144b521b9916f798a43aac9dc44fd44f6ca (patch) | |
tree | da50e07a148af33b449d614687af504a09b45a9e /Objects | |
parent | 0a37a30037073a4a9ba45e560c8445048e5f2ba2 (diff) | |
download | cpython-14709144b521b9916f798a43aac9dc44fd44f6ca.zip cpython-14709144b521b9916f798a43aac9dc44fd44f6ca.tar.gz cpython-14709144b521b9916f798a43aac9dc44fd44f6ca.tar.bz2 |
bpo-32468: Better frame repr() (#5067)
bpo-32468: Better frame repr()
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/frameobject.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 6ab3a22..1ac3d75 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -547,6 +547,15 @@ frame_sizeof(PyFrameObject *f) PyDoc_STRVAR(sizeof__doc__, "F.__sizeof__() -> size of F in memory, in bytes"); +static PyObject * +frame_repr(PyFrameObject *f) +{ + int lineno = PyFrame_GetLineNumber(f); + return PyUnicode_FromFormat( + "<frame at %p, file %R, line %d, code %S>", + f, f->f_code->co_filename, lineno, f->f_code->co_name); +} + static PyMethodDef frame_methods[] = { {"clear", (PyCFunction)frame_clear, METH_NOARGS, clear__doc__}, @@ -565,7 +574,7 @@ PyTypeObject PyFrame_Type = { 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_reserved */ - 0, /* tp_repr */ + (reprfunc)frame_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ |