Tim Peters <tim.one@comcast.net> writes: > [Michael Hudson] > > I've found another annoying problem. I'm not really expecting someone > > here to sovle it for me, but writing it down might help me think > > clearly. > > > > This is about the function epilogues that always get generated. I.e: [snip example] > > You can see here that the epilogue gets associated with line 3, > > whereas it shouldn't really be associated with any line at all. > > It has to be associated with some line >= 3, as c_lnotab isn't capable of > expressing anything other than that. Yes. > It *could* associate it with "line 4", though, if the compiler were > changed to pump out another c_lntab entry at the epilogue. That > would be better than saying the time is charged to line 3, since it > isn't on line 3 then. I'd be happy to trade away total insanity for > partial insanity <wink>. This would be bad if you had def f(): print 1 def g(): print 2 Anyway, I think I've found a way to get around this (see the patch). > It stops on the "if a:" for me twice today, and I doubt that's any less > confusing. If it were set to line 4 instead, an unaltered pdb would > presumably show a blank line (whatever) after the function body, and an > altered pdb could be taught that "the last line" c_lnotab claims exists is > really devoted to exit code not associated with any source-file line. Yes. I didn't really like the idea of heavily hacking pdb, as I don't understand it. Cheers, M. -- 39. Re graphics: A picture is worth 10K words - but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures. -- Alan Perlis, http://www.cs.yale.edu/homes/perlis-alan/quotes.html
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