mirror of
https://github.com/python/cpython.git
synced 2025-08-01 15:43:13 +00:00

Most uses of PyCode_Addr2Line (http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get the line number of a specified frame, but there's no way to do that directly. Forcing people to go through the code object makes them know more about the guts of the interpreter than they should need. The remaining uses of PyCode_Addr2Line seem to be getting the line from a traceback (for example, http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line), which is replaced by the tb_lineno field. So we may be able to deprecate PyCode_Addr2Line entirely for external use.
55 lines
1.5 KiB
ReStructuredText
55 lines
1.5 KiB
ReStructuredText
.. highlightlang:: c
|
|
|
|
.. _reflection:
|
|
|
|
Reflection
|
|
==========
|
|
|
|
.. cfunction:: PyObject* PyEval_GetBuiltins()
|
|
|
|
Return a dictionary of the builtins in the current execution frame,
|
|
or the interpreter of the thread state if no frame is currently executing.
|
|
|
|
|
|
.. cfunction:: PyObject* PyEval_GetLocals()
|
|
|
|
Return a dictionary of the local variables in the current execution frame,
|
|
or *NULL* if no frame is currently executing.
|
|
|
|
|
|
.. cfunction:: PyObject* PyEval_GetGlobals()
|
|
|
|
Return a dictionary of the global variables in the current execution frame,
|
|
or *NULL* if no frame is currently executing.
|
|
|
|
|
|
.. cfunction:: PyFrameObject* PyEval_GetFrame()
|
|
|
|
Return the current thread state's frame, which is *NULL* if no frame is
|
|
currently executing.
|
|
|
|
|
|
.. cfunction:: int PyFrame_GetLineNumber(PyFrameObject *frame)
|
|
|
|
Return the line number that *frame* is currently executing.
|
|
|
|
|
|
.. cfunction:: int PyEval_GetRestricted()
|
|
|
|
If there is a current frame and it is executing in restricted mode, return true,
|
|
otherwise false.
|
|
|
|
|
|
.. cfunction:: const char* PyEval_GetFuncName(PyObject *func)
|
|
|
|
Return the name of *func* if it is a function, class or instance object, else the
|
|
name of *func*\s type.
|
|
|
|
|
|
.. cfunction:: const char* PyEval_GetFuncDesc(PyObject *func)
|
|
|
|
Return a description string, depending on the type of *func*.
|
|
Return values include "()" for functions and methods, " constructor",
|
|
" instance", and " object". Concatenated with the result of
|
|
:cfunc:`PyEval_GetFuncName`, the result will be a description of
|
|
*func*.
|