mirror of
https://github.com/python/cpython.git
synced 2025-09-15 05:06:12 +00:00
This is my patch
[ 587993 ] SET_LINENO killer Remove SET_LINENO. Tracing is now supported by inspecting co_lnotab. Many sundry changes to document and adapt to this change.
This commit is contained in:
parent
add88060c1
commit
dd32a91cc0
19 changed files with 341 additions and 187 deletions
|
@ -103,8 +103,7 @@ PyTypeObject PyTraceBack_Type = {
|
|||
};
|
||||
|
||||
static tracebackobject *
|
||||
newtracebackobject(tracebackobject *next, PyFrameObject *frame, int lasti,
|
||||
int lineno)
|
||||
newtracebackobject(tracebackobject *next, PyFrameObject *frame)
|
||||
{
|
||||
tracebackobject *tb;
|
||||
if ((next != NULL && !PyTraceBack_Check(next)) ||
|
||||
|
@ -118,8 +117,9 @@ newtracebackobject(tracebackobject *next, PyFrameObject *frame, int lasti,
|
|||
tb->tb_next = next;
|
||||
Py_XINCREF(frame);
|
||||
tb->tb_frame = frame;
|
||||
tb->tb_lasti = lasti;
|
||||
tb->tb_lineno = lineno;
|
||||
tb->tb_lasti = frame->f_lasti;
|
||||
tb->tb_lineno = PyCode_Addr2Line(frame->f_code,
|
||||
frame->f_lasti);
|
||||
PyObject_GC_Track(tb);
|
||||
}
|
||||
return tb;
|
||||
|
@ -130,8 +130,7 @@ PyTraceBack_Here(PyFrameObject *frame)
|
|||
{
|
||||
PyThreadState *tstate = frame->f_tstate;
|
||||
tracebackobject *oldtb = (tracebackobject *) tstate->curexc_traceback;
|
||||
tracebackobject *tb = newtracebackobject(oldtb,
|
||||
frame, frame->f_lasti, frame->f_lineno);
|
||||
tracebackobject *tb = newtracebackobject(oldtb, frame);
|
||||
if (tb == NULL)
|
||||
return -1;
|
||||
tstate->curexc_traceback = (PyObject *)tb;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue