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

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

eric ide

mercurial