[ python-Bugs-1248119 ] pdb 'next' does not skip list comprehension
SourceForge.net
noreply at sourceforge.net
Sun Jul 31 02:59:30 CEST 2005
Bugs item #1248119, was opened at 2005-07-30 14:12
Message generated for change (Comment added) made by isandler
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1248119&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Joseph Heled (pepster)
Assigned to: Nobody/Anonymous (nobody)
Summary: pdb 'next' does not skip list comprehension
Initial Comment:
pdb next command forces you to step over each list element.
This seem to be a reincarnation of this old bug.
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=523995&group_id=5470
Version:
Python 2.4.1 (#2, Mar 30 2005, 21:51:10)
[GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2
----------------------------------------------------------------------
Comment By: Ilya Sandler (isandler)
Date: 2005-07-30 17:59
Message:
Logged In: YES
user_id=971153
A bit more information. I looked into what happens in
ceval.c and apparently the current behaviour is intentional..
Looks like this piece of code:
else if (frame->f_lasti <= *instr_prev) {
/* jumping back in the same line forces a trace event */
result = call_trace(func, obj, frame,
PyTrace_LINE, Py_None);
}
in maybe_call_line_trace() is responsible for the extra
"line" events..
Seems like this piece of code was added to fix bug #765624.
in ceval.c:2.386
So, should this (1248119) bug be dealt with by skipping
extra line events in bdb?
Any thoughts? Or am I totally lost?
----------------------------------------------------------------------
Comment By: Ilya Sandler (isandler)
Date: 2005-07-30 17:33
Message:
Logged In: YES
user_id=971153
I changed bdb.py to print the kind of event it receives as
well as as line numbers and here is a session which
illustrates the bug...
bagira:~/python/dist/src/bug-next1248119> cat t
#../python
y=[1,2,3,4]
x=[ i+1 for i in y]
print x
bagira:~/python/dist/src/bug-next1248119> ../python -m pdb t
event: call; line 1, file <string>
event: line; line 1, file <string>
event: call; line 2, file t
event: line; line 2, file t
> /home/ilya/python/dist/src/bug-next1248119/t(2)?()
-> y=[1,2,3,4]
(Pdb) n
event: line; line 3, file t
> /home/ilya/python/dist/src/bug-next1248119/t(3)?()
-> x=[ i+1 for i in y]
(Pdb) n
event: line; line 3, file t
> /home/ilya/python/dist/src/bug-next1248119/t(3)?()
-> x=[ i+1 for i in y]
(Pdb) n
event: line; line 3, file t
> /home/ilya/python/dist/src/bug-next1248119/t(3)?()
-> x=[ i+1 for i in y]
(Pdb)
event: line; line 3, file t
> /home/ilya/python/dist/src/bug-next1248119/t(3)?()
-> x=[ i+1 for i in y]
So it appears that the interpreter generates "line" events
for every iteration of the loop..
Would this be a bug in the interpreter (and not in pdb/bdb)?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1248119&group_id=5470
More information about the Python-bugs-list
mailing list