summaryrefslogtreecommitdiffstats
path: root/Include/cpython/pyframe.h
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-07-24 19:20:44 (GMT)
committerGitHub <noreply@github.com>2023-07-24 19:20:44 (GMT)
commit837fa5c0cd92e70f625377c9ffb7ac31a23d7d63 (patch)
treeb9836f8cf551ef17f12beab185a9c77b15a2c101 /Include/cpython/pyframe.h
parent83a2837b328c58b243f7d97bec12c64ec66681c5 (diff)
downloadcpython-837fa5c0cd92e70f625377c9ffb7ac31a23d7d63.zip
cpython-837fa5c0cd92e70f625377c9ffb7ac31a23d7d63.tar.gz
cpython-837fa5c0cd92e70f625377c9ffb7ac31a23d7d63.tar.bz2
GH-96803: Move PyUnstable_InterpreterFrame_GetCode() to Python.h (#107188)
Declare the following 3 PyUnstable functions in Include/cpython/pyframe.h rather than Include/cpython/frameobject.h, so they are now provided by the standard "#include <Python.h>".
Diffstat (limited to 'Include/cpython/pyframe.h')
-rw-r--r--Include/cpython/pyframe.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/Include/cpython/pyframe.h b/Include/cpython/pyframe.h
index 6ec2927..0e2afff 100644
--- a/Include/cpython/pyframe.h
+++ b/Include/cpython/pyframe.h
@@ -16,3 +16,20 @@ PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame);
PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame);
PyAPI_FUNC(PyObject*) PyFrame_GetVar(PyFrameObject *frame, PyObject *name);
PyAPI_FUNC(PyObject*) PyFrame_GetVarString(PyFrameObject *frame, const char *name);
+
+/* The following functions are for use by debuggers and other tools
+ * implementing custom frame evaluators with PEP 523. */
+
+struct _PyInterpreterFrame;
+
+/* Returns the code object of the frame (strong reference).
+ * Does not raise an exception. */
+PyAPI_FUNC(PyObject *) PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);
+
+/* Returns a byte ofsset into the last executed instruction.
+ * Does not raise an exception. */
+PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);
+
+/* Returns the currently executing line number, or -1 if there is no line number.
+ * Does not raise an exception. */
+PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);