From: Jeffrey Yasskin Date: Mon, 18 May 2009 21:14:54 +0000 (+0000) Subject: While I was modifying test_trace, it threw an exception when I accidentally X-Git-Tag: v2.7a1~1152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61328eef1fdb8f8bb292e07839be55e917ae4f7a;p=thirdparty%2FPython%2Fcpython.git While I was modifying test_trace, it threw an exception when I accidentally made it try to set the line number from the trace callback for a 'call' event. This patch makes the error message a little more helpful in that case, and makes it a little less likely that a future editor will make the same mistake in test_trace. --- diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py index b5db9a7a01f5..a8f516383991 100644 --- a/Lib/test/test_trace.py +++ b/Lib/test/test_trace.py @@ -471,7 +471,7 @@ class JumpTracer: def trace(self, frame, event, arg): if not self.done and frame.f_code == self.function.func_code: firstLine = frame.f_code.co_firstlineno - if frame.f_lineno == firstLine + self.jumpFrom: + if event == 'line' and frame.f_lineno == firstLine + self.jumpFrom: # Cope with non-integer self.jumpTo (because of # no_jump_to_non_integers below). try: diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 7a9d40d8965a..5e54585f67bc 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -127,7 +127,8 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) if (!f->f_trace) { PyErr_Format(PyExc_ValueError, - "f_lineno can only be set by a trace function"); + "f_lineno can only be set by a" + " line trace function"); return -1; }