New submission from Ned Batchelder <ned...@users.sourceforge.net>: Pyexpat.c calls the tracing function explicitly (not sure why). When it intercepts an exception, it calls the function with PyTrace_EXCEPTION, but then leaves the scope without calling PyTrace_RETURN. This is incorrect. There should always be a PyTrace_RETURN for every PyTrace_CALL.
I've attached domshow.py to demonstrate the problem. Running it produces many lines of output, including: line expatbuilder.py 222 line expatbuilder.py 223 call pyexpat.c 905 call expatbuilder.py 892 line expatbuilder.py 894 line expatbuilder.py 900 exception expatbuilder.py 900 return expatbuilder.py 900 exception pyexpat.c 905 exception expatbuilder.py 223 line expatbuilder.py 225 line expatbuilder.py 226 The exception at line 905 in pyexpat.c should be followed with a return from line 905 in pyexpat.c, but is not. After that exception, the nesting is off by one because the Calls and Returns don't match. ---------- components: XML files: domshow.py messages: 89798 nosy: nedbat severity: normal status: open title: pyexpat.c calls trace function incorrectly for exceptions type: behavior versions: Python 2.5, Python 2.6 Added file: http://bugs.python.org/file14379/domshow.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6359> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com