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

eric ide

mercurial