|
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> |