Michael Hudson wrote: > barry@python.org (Barry A. Warsaw) writes: > > >>>>>>>"MH" == Michael Hudson <mwh@python.net> writes: >>>>>> >> MH> 3) The patch changes behaviour -- for the better! You're now >> MH> rather less likely to get the trace function called several >> MH> times per line. >> >>Does this change affect debugging? > > > Hmm, I hadn't actually dared to run pdb with my patch... have now, and > it seems OK. > > There is a difference: > > The bytecode for, say, > > def f(): > print 1 > > begins with two SET_LINENO's. One is for the line containing "def > f():", one is for "print 1". My patch means the debugger doesn't stop > on the "def f():" line -- unsurprisingly, given that no execution ever > takes place on that line. This might be used in debugging application to setup some environment *before* diving into the function itself. Note that many C debuggers stop at the declare line of a function as well (because they execute stack setup code), so a sudden change in this would probably confuse users of todays Python IDEs. > It would be possible to force a call to the trace function on entry to > the function. In fact, there's a commented out block for this in my > patch. Another approach would presuambly be for pdb to stop on 'call' > trace events as well as 'line' ones. I don't really understand, or > use all that often, pdb. > > Also, you currently stop twice on the first line of a for loop, but > only once with my patch. There are probably other situations of > excessive SET_LINENO emission. I know Skip (think it was him) killed > a couple last week. Bug compatibility is possible here too, but I > don't see the advantage. > > >>Have you tested how this change might interact with e.g. hotshot? > > > test_hotshot was very important to me as evidence I was making > progress! > > It currently fails due to the not-calling-trace-on-def-line issue, but > as I said, I think this is a *good* thing... Have you also tested this with the commonly used Python IDEs out there ? E.g. IDLE, IDLE-fork, PythonWorks, WingIDE, Emacs, BlackAdder, BOA Constructor, etc. etc. -- Marc-Andre Lemburg CEO eGenix.com Software GmbH _______________________________________________________________________ eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4