Documentation/Source/eric6.DebugClients.Python3.DebugBase.html

changeset 3673
e26d7d0c1088
child 4309
cc9c62f55413
equal deleted inserted replaced
3670:f0cb7579c0b4 3673:e26d7d0c1088
1 <!DOCTYPE html>
2 <html><head>
3 <title>eric6.DebugClients.Python3.DebugBase</title>
4 <meta charset="UTF-8">
5 <style>
6 body {
7 background: #EDECE6;
8 margin: 0em 1em 10em 1em;
9 color: black;
10 }
11
12 h1 { color: white; background: #85774A; }
13 h2 { color: white; background: #85774A; }
14 h3 { color: white; background: #9D936E; }
15 h4 { color: white; background: #9D936E; }
16
17 a { color: #BA6D36; }
18
19 </style>
20 </head>
21 <body><a NAME="top" ID="top"></a>
22 <h1>eric6.DebugClients.Python3.DebugBase</h1>
23 <p>
24 Module implementing the debug base class.
25 </p>
26 <h3>Global Attributes</h3>
27 <table>
28 <tr><td>gRecursionLimit</td></tr>
29 </table>
30 <h3>Classes</h3>
31 <table>
32 <tr>
33 <td><a href="#DebugBase">DebugBase</a></td>
34 <td>Class implementing base class of the debugger.</td>
35 </tr>
36 </table>
37 <h3>Functions</h3>
38 <table>
39 <tr>
40 <td><a href="#printerr">printerr</a></td>
41 <td>Module function used for debugging the debug client.</td>
42 </tr><tr>
43 <td><a href="#setRecursionLimit">setRecursionLimit</a></td>
44 <td>Module function to set the recursion limit.</td>
45 </tr>
46 </table>
47 <hr /><hr />
48 <a NAME="DebugBase" ID="DebugBase"></a>
49 <h2>DebugBase</h2>
50 <p>
51 Class implementing base class of the debugger.
52 </p><p>
53 Provides simple wrapper methods around bdb for the 'owning' client to
54 call to step etc.
55 </p>
56 <h3>Derived from</h3>
57 bdb.Bdb
58 <h3>Class Attributes</h3>
59 <table>
60 <tr><td>None</td></tr>
61 </table>
62 <h3>Class Methods</h3>
63 <table>
64 <tr><td>None</td></tr>
65 </table>
66 <h3>Methods</h3>
67 <table>
68 <tr>
69 <td><a href="#DebugBase.__init__">DebugBase</a></td>
70 <td>Constructor</td>
71 </tr><tr>
72 <td><a href="#DebugBase.__do_clear">__do_clear</a></td>
73 <td>Private method called to clear a temporary breakpoint.</td>
74 </tr><tr>
75 <td><a href="#DebugBase.__do_clearWatch">__do_clearWatch</a></td>
76 <td>Private method called to clear a temporary watch expression.</td>
77 </tr><tr>
78 <td><a href="#DebugBase.__effective">__effective</a></td>
79 <td>Private method to determine, if a watch expression is effective.</td>
80 </tr><tr>
81 <td><a href="#DebugBase.__extractExceptionName">__extractExceptionName</a></td>
82 <td>Private method to extract the exception name given the exception type object.</td>
83 </tr><tr>
84 <td><a href="#DebugBase.__extract_stack">__extract_stack</a></td>
85 <td>Private member to return a list of stack frames.</td>
86 </tr><tr>
87 <td><a href="#DebugBase.__sendCallTrace">__sendCallTrace</a></td>
88 <td>Private method to send a call/return trace.</td>
89 </tr><tr>
90 <td><a href="#DebugBase.__skip_it">__skip_it</a></td>
91 <td>Private method to filter out debugger files.</td>
92 </tr><tr>
93 <td><a href="#DebugBase.break_anywhere">break_anywhere</a></td>
94 <td>Public method reimplemented from bdb.py to do some special things.</td>
95 </tr><tr>
96 <td><a href="#DebugBase.break_here">break_here</a></td>
97 <td>Public method reimplemented from bdb.py to fix the filename from the frame.</td>
98 </tr><tr>
99 <td><a href="#DebugBase.clear_watch">clear_watch</a></td>
100 <td>Public method to clear a watch expression.</td>
101 </tr><tr>
102 <td><a href="#DebugBase.dispatch_exception">dispatch_exception</a></td>
103 <td>Public method reimplemented from bdb.py to always call user_exception.</td>
104 </tr><tr>
105 <td><a href="#DebugBase.dispatch_line">dispatch_line</a></td>
106 <td>Public method reimplemented from bdb.py to do some special things.</td>
107 </tr><tr>
108 <td><a href="#DebugBase.dispatch_return">dispatch_return</a></td>
109 <td>Public method reimplemented from bdb.py to handle passive mode cleanly.</td>
110 </tr><tr>
111 <td><a href="#DebugBase.fix_frame_filename">fix_frame_filename</a></td>
112 <td>Public method used to fixup the filename for a given frame.</td>
113 </tr><tr>
114 <td><a href="#DebugBase.getCurrentFrame">getCurrentFrame</a></td>
115 <td>Public method to return the current frame.</td>
116 </tr><tr>
117 <td><a href="#DebugBase.getCurrentFrameLocals">getCurrentFrameLocals</a></td>
118 <td>Public method to return the locals dictionary of the current frame.</td>
119 </tr><tr>
120 <td><a href="#DebugBase.getEvent">getEvent</a></td>
121 <td>Protected method to return the last debugger event.</td>
122 </tr><tr>
123 <td><a href="#DebugBase.getStack">getStack</a></td>
124 <td>Public method to get the stack.</td>
125 </tr><tr>
126 <td><a href="#DebugBase.get_break">get_break</a></td>
127 <td>Public method reimplemented from bdb.py to get the first breakpoint of a particular line.</td>
128 </tr><tr>
129 <td><a href="#DebugBase.get_watch">get_watch</a></td>
130 <td>Public method to get a watch expression.</td>
131 </tr><tr>
132 <td><a href="#DebugBase.go">go</a></td>
133 <td>Public method to resume the thread.</td>
134 </tr><tr>
135 <td><a href="#DebugBase.isBroken">isBroken</a></td>
136 <td>Public method to return the broken state of the debugger.</td>
137 </tr><tr>
138 <td><a href="#DebugBase.profile">profile</a></td>
139 <td>Public method used to trace some stuff independent of the debugger trace function.</td>
140 </tr><tr>
141 <td><a href="#DebugBase.setRecursionDepth">setRecursionDepth</a></td>
142 <td>Public method to determine the current recursion depth.</td>
143 </tr><tr>
144 <td><a href="#DebugBase.set_continue">set_continue</a></td>
145 <td>Public method reimplemented from bdb.py to always get informed of exceptions.</td>
146 </tr><tr>
147 <td><a href="#DebugBase.set_quit">set_quit</a></td>
148 <td>Public method to quit.</td>
149 </tr><tr>
150 <td><a href="#DebugBase.set_trace">set_trace</a></td>
151 <td>Public method reimplemented from bdb.py to do some special setup.</td>
152 </tr><tr>
153 <td><a href="#DebugBase.set_watch">set_watch</a></td>
154 <td>Public method to set a watch expression.</td>
155 </tr><tr>
156 <td><a href="#DebugBase.step">step</a></td>
157 <td>Public method to perform a step operation in this thread.</td>
158 </tr><tr>
159 <td><a href="#DebugBase.stepOut">stepOut</a></td>
160 <td>Public method to perform a step out of the current call.</td>
161 </tr><tr>
162 <td><a href="#DebugBase.stop_here">stop_here</a></td>
163 <td>Public method reimplemented to filter out debugger files.</td>
164 </tr><tr>
165 <td><a href="#DebugBase.trace_dispatch">trace_dispatch</a></td>
166 <td>Public method reimplemented from bdb.py to do some special things.</td>
167 </tr><tr>
168 <td><a href="#DebugBase.user_exception">user_exception</a></td>
169 <td>Public method reimplemented to report an exception to the debug server.</td>
170 </tr><tr>
171 <td><a href="#DebugBase.user_line">user_line</a></td>
172 <td>Public method reimplemented to handle the program about to execute a particular line.</td>
173 </tr><tr>
174 <td><a href="#DebugBase.user_return">user_return</a></td>
175 <td>Public method reimplemented to report program termination to the debug server.</td>
176 </tr>
177 </table>
178 <h3>Static Methods</h3>
179 <table>
180 <tr><td>None</td></tr>
181 </table>
182 <a NAME="DebugBase.__init__" ID="DebugBase.__init__"></a>
183 <h4>DebugBase (Constructor)</h4>
184 <b>DebugBase</b>(<i>dbgClient</i>)
185 <p>
186 Constructor
187 </p><dl>
188 <dt><i>dbgClient</i></dt>
189 <dd>
190 the owning client
191 </dd>
192 </dl><a NAME="DebugBase.__do_clear" ID="DebugBase.__do_clear"></a>
193 <h4>DebugBase.__do_clear</h4>
194 <b>__do_clear</b>(<i>filename, lineno</i>)
195 <p>
196 Private method called to clear a temporary breakpoint.
197 </p><dl>
198 <dt><i>filename</i></dt>
199 <dd>
200 name of the file the bp belongs to
201 </dd><dt><i>lineno</i></dt>
202 <dd>
203 linenumber of the bp
204 </dd>
205 </dl><a NAME="DebugBase.__do_clearWatch" ID="DebugBase.__do_clearWatch"></a>
206 <h4>DebugBase.__do_clearWatch</h4>
207 <b>__do_clearWatch</b>(<i>cond</i>)
208 <p>
209 Private method called to clear a temporary watch expression.
210 </p><dl>
211 <dt><i>cond</i></dt>
212 <dd>
213 expression of the watch expression to be cleared (string)
214 </dd>
215 </dl><a NAME="DebugBase.__effective" ID="DebugBase.__effective"></a>
216 <h4>DebugBase.__effective</h4>
217 <b>__effective</b>(<i>frame</i>)
218 <p>
219 Private method to determine, if a watch expression is effective.
220 </p><dl>
221 <dt><i>frame</i></dt>
222 <dd>
223 the current execution frame
224 </dd>
225 </dl><dl>
226 <dt>Returns:</dt>
227 <dd>
228 tuple of watch expression and a flag to indicate, that a
229 temporary watch expression may be deleted (bdb.Breakpoint, boolean)
230 </dd>
231 </dl><a NAME="DebugBase.__extractExceptionName" ID="DebugBase.__extractExceptionName"></a>
232 <h4>DebugBase.__extractExceptionName</h4>
233 <b>__extractExceptionName</b>(<i>exctype</i>)
234 <p>
235 Private method to extract the exception name given the exception
236 type object.
237 </p><dl>
238 <dt><i>exctype</i></dt>
239 <dd>
240 type of the exception
241 </dd>
242 </dl><dl>
243 <dt>Returns:</dt>
244 <dd>
245 exception name (string)
246 </dd>
247 </dl><a NAME="DebugBase.__extract_stack" ID="DebugBase.__extract_stack"></a>
248 <h4>DebugBase.__extract_stack</h4>
249 <b>__extract_stack</b>(<i>exctb</i>)
250 <p>
251 Private member to return a list of stack frames.
252 </p><dl>
253 <dt><i>exctb</i></dt>
254 <dd>
255 exception traceback
256 </dd>
257 </dl><dl>
258 <dt>Returns:</dt>
259 <dd>
260 list of stack frames
261 </dd>
262 </dl><a NAME="DebugBase.__sendCallTrace" ID="DebugBase.__sendCallTrace"></a>
263 <h4>DebugBase.__sendCallTrace</h4>
264 <b>__sendCallTrace</b>(<i>event, fromFrame, toFrame</i>)
265 <p>
266 Private method to send a call/return trace.
267 </p><dl>
268 <dt><i>event</i></dt>
269 <dd>
270 trace event (string)
271 </dd><dt><i>fromFrame</i></dt>
272 <dd>
273 originating frame (frame)
274 </dd><dt><i>toFrame</i></dt>
275 <dd>
276 destination frame (frame)
277 </dd>
278 </dl><a NAME="DebugBase.__skip_it" ID="DebugBase.__skip_it"></a>
279 <h4>DebugBase.__skip_it</h4>
280 <b>__skip_it</b>(<i>frame</i>)
281 <p>
282 Private method to filter out debugger files.
283 </p><p>
284 Tracing is turned off for files that are part of the
285 debugger that are called from the application being debugged.
286 </p><dl>
287 <dt><i>frame</i></dt>
288 <dd>
289 the frame object
290 </dd>
291 </dl><dl>
292 <dt>Returns:</dt>
293 <dd>
294 flag indicating whether the debugger should skip this frame
295 </dd>
296 </dl><a NAME="DebugBase.break_anywhere" ID="DebugBase.break_anywhere"></a>
297 <h4>DebugBase.break_anywhere</h4>
298 <b>break_anywhere</b>(<i>frame</i>)
299 <p>
300 Public method reimplemented from bdb.py to do some special things.
301 </p><p>
302 These speciality is to fix the filename from the frame
303 (see fix_frame_filename for more info).
304 </p><dl>
305 <dt><i>frame</i></dt>
306 <dd>
307 the frame object
308 </dd>
309 </dl><dl>
310 <dt>Returns:</dt>
311 <dd>
312 flag indicating the break status (boolean)
313 </dd>
314 </dl><a NAME="DebugBase.break_here" ID="DebugBase.break_here"></a>
315 <h4>DebugBase.break_here</h4>
316 <b>break_here</b>(<i>frame</i>)
317 <p>
318 Public method reimplemented from bdb.py to fix the filename from the
319 frame.
320 </p><p>
321 See fix_frame_filename for more info.
322 </p><dl>
323 <dt><i>frame</i></dt>
324 <dd>
325 the frame object
326 </dd>
327 </dl><dl>
328 <dt>Returns:</dt>
329 <dd>
330 flag indicating the break status (boolean)
331 </dd>
332 </dl><a NAME="DebugBase.clear_watch" ID="DebugBase.clear_watch"></a>
333 <h4>DebugBase.clear_watch</h4>
334 <b>clear_watch</b>(<i>cond</i>)
335 <p>
336 Public method to clear a watch expression.
337 </p><dl>
338 <dt><i>cond</i></dt>
339 <dd>
340 expression of the watch expression to be cleared (string)
341 </dd>
342 </dl><a NAME="DebugBase.dispatch_exception" ID="DebugBase.dispatch_exception"></a>
343 <h4>DebugBase.dispatch_exception</h4>
344 <b>dispatch_exception</b>(<i>frame, arg</i>)
345 <p>
346 Public method reimplemented from bdb.py to always call user_exception.
347 </p><dl>
348 <dt><i>frame</i></dt>
349 <dd>
350 The current stack frame.
351 </dd><dt><i>arg</i></dt>
352 <dd>
353 The arguments
354 </dd>
355 </dl><dl>
356 <dt>Returns:</dt>
357 <dd>
358 local trace function
359 </dd>
360 </dl><dl>
361 <dt>Raises <b>bdb.BdbQuit</b>:</dt>
362 <dd>
363 raised to indicate the end of the debug session
364 </dd>
365 </dl><a NAME="DebugBase.dispatch_line" ID="DebugBase.dispatch_line"></a>
366 <h4>DebugBase.dispatch_line</h4>
367 <b>dispatch_line</b>(<i>frame</i>)
368 <p>
369 Public method reimplemented from bdb.py to do some special things.
370 </p><p>
371 This speciality is to check the connection to the debug server
372 for new events (i.e. new breakpoints) while we are going through
373 the code.
374 </p><dl>
375 <dt><i>frame</i></dt>
376 <dd>
377 The current stack frame.
378 </dd>
379 </dl><dl>
380 <dt>Returns:</dt>
381 <dd>
382 local trace function
383 </dd>
384 </dl><dl>
385 <dt>Raises <b>bdb.BdbQuit</b>:</dt>
386 <dd>
387 raised to indicate the end of the debug session
388 </dd>
389 </dl><a NAME="DebugBase.dispatch_return" ID="DebugBase.dispatch_return"></a>
390 <h4>DebugBase.dispatch_return</h4>
391 <b>dispatch_return</b>(<i>frame, arg</i>)
392 <p>
393 Public method reimplemented from bdb.py to handle passive mode cleanly.
394 </p><dl>
395 <dt><i>frame</i></dt>
396 <dd>
397 The current stack frame.
398 </dd><dt><i>arg</i></dt>
399 <dd>
400 The arguments
401 </dd>
402 </dl><dl>
403 <dt>Returns:</dt>
404 <dd>
405 local trace function
406 </dd>
407 </dl><dl>
408 <dt>Raises <b>bdb.BdbQuit</b>:</dt>
409 <dd>
410 raised to indicate the end of the debug session
411 </dd>
412 </dl><a NAME="DebugBase.fix_frame_filename" ID="DebugBase.fix_frame_filename"></a>
413 <h4>DebugBase.fix_frame_filename</h4>
414 <b>fix_frame_filename</b>(<i>frame</i>)
415 <p>
416 Public method used to fixup the filename for a given frame.
417 </p><p>
418 The logic employed here is that if a module was loaded
419 from a .pyc file, then the correct .py to operate with
420 should be in the same path as the .pyc. The reason this
421 logic is needed is that when a .pyc file is generated, the
422 filename embedded and thus what is readable in the code object
423 of the frame object is the fully qualified filepath when the
424 pyc is generated. If files are moved from machine to machine
425 this can break debugging as the .pyc will refer to the .py
426 on the original machine. Another case might be sharing
427 code over a network... This logic deals with that.
428 </p><dl>
429 <dt><i>frame</i></dt>
430 <dd>
431 the frame object
432 </dd>
433 </dl><dl>
434 <dt>Returns:</dt>
435 <dd>
436 fixed up file name (string)
437 </dd>
438 </dl><a NAME="DebugBase.getCurrentFrame" ID="DebugBase.getCurrentFrame"></a>
439 <h4>DebugBase.getCurrentFrame</h4>
440 <b>getCurrentFrame</b>(<i></i>)
441 <p>
442 Public method to return the current frame.
443 </p><dl>
444 <dt>Returns:</dt>
445 <dd>
446 the current frame
447 </dd>
448 </dl><a NAME="DebugBase.getCurrentFrameLocals" ID="DebugBase.getCurrentFrameLocals"></a>
449 <h4>DebugBase.getCurrentFrameLocals</h4>
450 <b>getCurrentFrameLocals</b>(<i></i>)
451 <p>
452 Public method to return the locals dictionary of the current frame.
453 </p><dl>
454 <dt>Returns:</dt>
455 <dd>
456 locals dictionary of the current frame
457 </dd>
458 </dl><a NAME="DebugBase.getEvent" ID="DebugBase.getEvent"></a>
459 <h4>DebugBase.getEvent</h4>
460 <b>getEvent</b>(<i></i>)
461 <p>
462 Protected method to return the last debugger event.
463 </p><dl>
464 <dt>Returns:</dt>
465 <dd>
466 last debugger event (string)
467 </dd>
468 </dl><a NAME="DebugBase.getStack" ID="DebugBase.getStack"></a>
469 <h4>DebugBase.getStack</h4>
470 <b>getStack</b>(<i></i>)
471 <p>
472 Public method to get the stack.
473 </p><dl>
474 <dt>Returns:</dt>
475 <dd>
476 list of lists with file name (string), line number (integer)
477 and function name (string)
478 </dd>
479 </dl><a NAME="DebugBase.get_break" ID="DebugBase.get_break"></a>
480 <h4>DebugBase.get_break</h4>
481 <b>get_break</b>(<i>filename, lineno</i>)
482 <p>
483 Public method reimplemented from bdb.py to get the first breakpoint of
484 a particular line.
485 </p><p>
486 Because eric6 supports only one breakpoint per line, this overwritten
487 method will return this one and only breakpoint.
488 </p><dl>
489 <dt><i>filename</i></dt>
490 <dd>
491 the filename of the bp to retrieve (string)
492 </dd><dt><i>lineno</i></dt>
493 <dd>
494 the linenumber of the bp to retrieve (integer)
495 </dd>
496 </dl><dl>
497 <dt>Returns:</dt>
498 <dd>
499 breakpoint or None, if there is no bp
500 </dd>
501 </dl><a NAME="DebugBase.get_watch" ID="DebugBase.get_watch"></a>
502 <h4>DebugBase.get_watch</h4>
503 <b>get_watch</b>(<i>cond</i>)
504 <p>
505 Public method to get a watch expression.
506 </p><dl>
507 <dt><i>cond</i></dt>
508 <dd>
509 expression of the watch expression to be cleared (string)
510 </dd>
511 </dl><dl>
512 <dt>Returns:</dt>
513 <dd>
514 reference to the watch point
515 </dd>
516 </dl><a NAME="DebugBase.go" ID="DebugBase.go"></a>
517 <h4>DebugBase.go</h4>
518 <b>go</b>(<i>special</i>)
519 <p>
520 Public method to resume the thread.
521 </p><p>
522 It resumes the thread stopping only at breakpoints or exceptions.
523 </p><dl>
524 <dt><i>special</i></dt>
525 <dd>
526 flag indicating a special continue operation
527 </dd>
528 </dl><a NAME="DebugBase.isBroken" ID="DebugBase.isBroken"></a>
529 <h4>DebugBase.isBroken</h4>
530 <b>isBroken</b>(<i></i>)
531 <p>
532 Public method to return the broken state of the debugger.
533 </p><dl>
534 <dt>Returns:</dt>
535 <dd>
536 flag indicating the broken state (boolean)
537 </dd>
538 </dl><a NAME="DebugBase.profile" ID="DebugBase.profile"></a>
539 <h4>DebugBase.profile</h4>
540 <b>profile</b>(<i>frame, event, arg</i>)
541 <p>
542 Public method used to trace some stuff independent of the debugger
543 trace function.
544 </p><dl>
545 <dt><i>frame</i></dt>
546 <dd>
547 current stack frame.
548 </dd><dt><i>event</i></dt>
549 <dd>
550 trace event (string)
551 </dd><dt><i>arg</i></dt>
552 <dd>
553 arguments
554 </dd>
555 </dl><dl>
556 <dt>Raises <b>RuntimeError</b>:</dt>
557 <dd>
558 raised to indicate too many recursions
559 </dd>
560 </dl><a NAME="DebugBase.setRecursionDepth" ID="DebugBase.setRecursionDepth"></a>
561 <h4>DebugBase.setRecursionDepth</h4>
562 <b>setRecursionDepth</b>(<i>frame</i>)
563 <p>
564 Public method to determine the current recursion depth.
565 </p><dl>
566 <dt><i>frame</i></dt>
567 <dd>
568 The current stack frame.
569 </dd>
570 </dl><a NAME="DebugBase.set_continue" ID="DebugBase.set_continue"></a>
571 <h4>DebugBase.set_continue</h4>
572 <b>set_continue</b>(<i>special</i>)
573 <p>
574 Public method reimplemented from bdb.py to always get informed of
575 exceptions.
576 </p><dl>
577 <dt><i>special</i></dt>
578 <dd>
579 flag indicating a special continue operation
580 </dd>
581 </dl><a NAME="DebugBase.set_quit" ID="DebugBase.set_quit"></a>
582 <h4>DebugBase.set_quit</h4>
583 <b>set_quit</b>(<i></i>)
584 <p>
585 Public method to quit.
586 </p><p>
587 It wraps call to bdb to clear the current frame properly.
588 </p><a NAME="DebugBase.set_trace" ID="DebugBase.set_trace"></a>
589 <h4>DebugBase.set_trace</h4>
590 <b>set_trace</b>(<i>frame=None</i>)
591 <p>
592 Public method reimplemented from bdb.py to do some special setup.
593 </p><dl>
594 <dt><i>frame</i></dt>
595 <dd>
596 frame to start debugging from
597 </dd>
598 </dl><a NAME="DebugBase.set_watch" ID="DebugBase.set_watch"></a>
599 <h4>DebugBase.set_watch</h4>
600 <b>set_watch</b>(<i>cond, temporary=False</i>)
601 <p>
602 Public method to set a watch expression.
603 </p><dl>
604 <dt><i>cond</i></dt>
605 <dd>
606 expression of the watch expression (string)
607 </dd><dt><i>temporary</i></dt>
608 <dd>
609 flag indicating a temporary watch expression (boolean)
610 </dd>
611 </dl><a NAME="DebugBase.step" ID="DebugBase.step"></a>
612 <h4>DebugBase.step</h4>
613 <b>step</b>(<i>traceMode</i>)
614 <p>
615 Public method to perform a step operation in this thread.
616 </p><dl>
617 <dt><i>traceMode</i></dt>
618 <dd>
619 If it is True, then the step is a step into,
620 otherwise it is a step over.
621 </dd>
622 </dl><a NAME="DebugBase.stepOut" ID="DebugBase.stepOut"></a>
623 <h4>DebugBase.stepOut</h4>
624 <b>stepOut</b>(<i></i>)
625 <p>
626 Public method to perform a step out of the current call.
627 </p><a NAME="DebugBase.stop_here" ID="DebugBase.stop_here"></a>
628 <h4>DebugBase.stop_here</h4>
629 <b>stop_here</b>(<i>frame</i>)
630 <p>
631 Public method reimplemented to filter out debugger files.
632 </p><p>
633 Tracing is turned off for files that are part of the
634 debugger that are called from the application being debugged.
635 </p><dl>
636 <dt><i>frame</i></dt>
637 <dd>
638 the frame object
639 </dd>
640 </dl><dl>
641 <dt>Returns:</dt>
642 <dd>
643 flag indicating whether the debugger should stop here
644 </dd>
645 </dl><a NAME="DebugBase.trace_dispatch" ID="DebugBase.trace_dispatch"></a>
646 <h4>DebugBase.trace_dispatch</h4>
647 <b>trace_dispatch</b>(<i>frame, event, arg</i>)
648 <p>
649 Public method reimplemented from bdb.py to do some special things.
650 </p><p>
651 This specialty is to check the connection to the debug server
652 for new events (i.e. new breakpoints) while we are going through
653 the code.
654 </p><dl>
655 <dt><i>frame</i></dt>
656 <dd>
657 The current stack frame.
658 </dd><dt><i>event</i></dt>
659 <dd>
660 The trace event (string)
661 </dd><dt><i>arg</i></dt>
662 <dd>
663 The arguments
664 </dd>
665 </dl><dl>
666 <dt>Returns:</dt>
667 <dd>
668 local trace function
669 </dd>
670 </dl><a NAME="DebugBase.user_exception" ID="DebugBase.user_exception"></a>
671 <h4>DebugBase.user_exception</h4>
672 <b>user_exception</b>(<i>frame, excinfo, unhandled=False</i>)
673 <p>
674 Public method reimplemented to report an exception to the debug server.
675 </p><dl>
676 <dt><i>frame</i></dt>
677 <dd>
678 the frame object
679 </dd><dt><i>excinfo</i></dt>
680 <dd>
681 information about the exception
682 </dd><dt><i>unhandled</i></dt>
683 <dd>
684 flag indicating an uncaught exception
685 </dd>
686 </dl><a NAME="DebugBase.user_line" ID="DebugBase.user_line"></a>
687 <h4>DebugBase.user_line</h4>
688 <b>user_line</b>(<i>frame</i>)
689 <p>
690 Public method reimplemented to handle the program about to execute a
691 particular line.
692 </p><dl>
693 <dt><i>frame</i></dt>
694 <dd>
695 the frame object
696 </dd>
697 </dl><a NAME="DebugBase.user_return" ID="DebugBase.user_return"></a>
698 <h4>DebugBase.user_return</h4>
699 <b>user_return</b>(<i>frame, retval</i>)
700 <p>
701 Public method reimplemented to report program termination to the debug
702 server.
703 </p><dl>
704 <dt><i>frame</i></dt>
705 <dd>
706 the frame object
707 </dd><dt><i>retval</i></dt>
708 <dd>
709 the return value of the program
710 </dd>
711 </dl>
712 <div align="right"><a href="#top">Up</a></div>
713 <hr /><hr />
714 <a NAME="printerr" ID="printerr"></a>
715 <h2>printerr</h2>
716 <b>printerr</b>(<i>s</i>)
717 <p>
718 Module function used for debugging the debug client.
719 </p><dl>
720 <dt><i>s</i></dt>
721 <dd>
722 data to be printed
723 </dd>
724 </dl>
725 <div align="right"><a href="#top">Up</a></div>
726 <hr /><hr />
727 <a NAME="setRecursionLimit" ID="setRecursionLimit"></a>
728 <h2>setRecursionLimit</h2>
729 <b>setRecursionLimit</b>(<i>limit</i>)
730 <p>
731 Module function to set the recursion limit.
732 </p><dl>
733 <dt><i>limit</i></dt>
734 <dd>
735 recursion limit (integer)
736 </dd>
737 </dl>
738 <div align="right"><a href="#top">Up</a></div>
739 <hr />
740 </body></html>

eric ide

mercurial