276 @type depends on the previous event parameter |
276 @type depends on the previous event parameter |
277 @return local trace function |
277 @return local trace function |
278 @rtype trace function or None |
278 @rtype trace function or None |
279 @exception bdb.BdbQuit |
279 @exception bdb.BdbQuit |
280 """ |
280 """ |
281 if self.quitting: |
|
282 return # None |
|
283 |
|
284 # give the client a chance to push through new break points. |
281 # give the client a chance to push through new break points. |
285 if self.eventPollFlag: |
282 if self.eventPollFlag: |
286 self._dbgClient.eventPoll() |
283 self._dbgClient.eventPoll() |
287 self.eventPollFlag = False |
284 self.eventPollFlag = False |
|
285 |
|
286 if self.quitting: |
|
287 raise bdb.BdbQuit |
288 |
288 |
289 if event == 'line': |
289 if event == 'line': |
290 if self.stop_here(frame) or self.break_here(frame): |
290 if self.stop_here(frame) or self.break_here(frame): |
291 self.user_line(frame) |
291 self.user_line(frame) |
292 if self.quitting: |
|
293 raise bdb.BdbQuit |
|
294 return |
292 return |
295 |
293 |
296 if event == 'call': |
294 if event == 'call': |
297 if self.botframe is None: |
295 if self.botframe is None: |
298 # First call of dispatch since reset() |
296 # First call of dispatch since reset() |
303 if not (self.stop_here(frame) or |
301 if not (self.stop_here(frame) or |
304 self.__checkBreakInFrame(frame) or |
302 self.__checkBreakInFrame(frame) or |
305 Watch.watches != []): |
303 Watch.watches != []): |
306 # No need to trace this function |
304 # No need to trace this function |
307 return |
305 return |
308 if self.quitting: |
|
309 raise bdb.BdbQuit |
|
310 return self.trace_dispatch |
306 return self.trace_dispatch |
311 |
307 |
312 if event == 'return': |
308 if event == 'return': |
313 if self.stop_here(frame) or frame == self.returnframe: |
309 if self.stop_here(frame) or frame == self.returnframe: |
314 # The program has finished if we have just left the first frame |
310 # The program has finished if we have just left the first frame |
325 return |
321 return |
326 |
322 |
327 if event == 'exception': |
323 if event == 'exception': |
328 if not self.__skipFrame(frame): |
324 if not self.__skipFrame(frame): |
329 self.user_exception(frame, arg) |
325 self.user_exception(frame, arg) |
330 if self.quitting: |
|
331 raise bdb.BdbQuit |
|
332 return |
326 return |
333 |
327 |
334 if event == 'c_call': |
328 if event == 'c_call': |
335 return |
329 return |
336 if event == 'c_exception': |
330 if event == 'c_exception': |