A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2002-July/027083.html below:

[Python-Dev] seeing off SET_LINENO

[Python-Dev] seeing off SET_LINENOM.-A. Lemburg mal@lemburg.com
Tue, 30 Jul 2002 14:42:19 +0200
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