mirror of
https://github.com/python/cpython.git
synced 2025-09-12 03:37:09 +00:00
- New function sys.call_tracing() allows pdb to debug code
recursively. - pdb has a new command, "debug", which lets you step through arbitrary code from the debugger's (pdb) prompt.
This commit is contained in:
parent
12dd7b12c6
commit
a12fe4e81f
5 changed files with 78 additions and 0 deletions
|
@ -3024,6 +3024,24 @@ call_trace(Py_tracefunc func, PyObject *obj, PyFrameObject *frame,
|
|||
return result;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
_PyEval_CallTracing(PyObject *func, PyObject *args)
|
||||
{
|
||||
PyFrameObject *frame = PyEval_GetFrame();
|
||||
PyThreadState *tstate = frame->f_tstate;
|
||||
int save_tracing = tstate->tracing;
|
||||
int save_use_tracing = tstate->use_tracing;
|
||||
PyObject *result;
|
||||
|
||||
tstate->tracing = 0;
|
||||
tstate->use_tracing = ((tstate->c_tracefunc != NULL)
|
||||
|| (tstate->c_profilefunc != NULL));
|
||||
result = PyObject_Call(func, args, NULL);
|
||||
tstate->tracing = save_tracing;
|
||||
tstate->use_tracing = save_use_tracing;
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
|
||||
PyFrameObject *frame, int *instr_lb, int *instr_ub)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue