--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric7/Documentation/Source/eric7.DebugClients.Python.DebugBase.html Mon May 24 11:19:57 2021 +0200 @@ -0,0 +1,1089 @@ +<!DOCTYPE html> +<html><head> +<title>eric7.DebugClients.Python.DebugBase</title> +<meta charset="UTF-8"> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body> +<a NAME="top" ID="top"></a> +<h1>eric7.DebugClients.Python.DebugBase</h1> + +<p> +Module implementing the debug base class which based originally on bdb. +</p> +<h3>Global Attributes</h3> + +<table> +<tr><td>gRecursionLimit</td></tr> +</table> +<h3>Classes</h3> + +<table> + +<tr> +<td><a href="#DebugBase">DebugBase</a></td> +<td>Class implementing base class of the debugger.</td> +</tr> +</table> +<h3>Functions</h3> + +<table> + +<tr> +<td><a href="#printerr">printerr</a></td> +<td>Module function used for debugging the debug client.</td> +</tr> +<tr> +<td><a href="#setRecursionLimit">setRecursionLimit</a></td> +<td>Module function to set the recursion limit.</td> +</tr> +</table> +<hr /> +<hr /> +<a NAME="DebugBase" ID="DebugBase"></a> +<h2>DebugBase</h2> + +<p> + Class implementing base class of the debugger. +</p> +<p> + Provides methods for the 'owning' client to call to step etc. +</p> +<h3>Derived from</h3> +None +<h3>Class Attributes</h3> + +<table> +<tr><td>_fnCache</td></tr><tr><td>filesToSkip</td></tr><tr><td>lib</td></tr><tr><td>pathsToSkip</td></tr><tr><td>pollTimerEnabled</td></tr> +</table> +<h3>Class Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> + +<table> + +<tr> +<td><a href="#DebugBase.__init__">DebugBase</a></td> +<td>Constructor</td> +</tr> +<tr> +<td><a href="#DebugBase.__checkBreakInFrame">__checkBreakInFrame</a></td> +<td>Private method to check if the function / method has a line number which is a breakpoint.</td> +</tr> +<tr> +<td><a href="#DebugBase.__disassemble">__disassemble</a></td> +<td>Private method to generate a disassembly of the given code object.</td> +</tr> +<tr> +<td><a href="#DebugBase.__do_clearBreak">__do_clearBreak</a></td> +<td>Private method called to clear a temporary breakpoint.</td> +</tr> +<tr> +<td><a href="#DebugBase.__do_clearWatch">__do_clearWatch</a></td> +<td>Private method called to clear a temporary watch expression.</td> +</tr> +<tr> +<td><a href="#DebugBase.__eventPollTimer">__eventPollTimer</a></td> +<td>Private method to set a flag every 0.5 s to check for new messages.</td> +</tr> +<tr> +<td><a href="#DebugBase.__extractExceptionName">__extractExceptionName</a></td> +<td>Private method to extract the exception name given the exception type object.</td> +</tr> +<tr> +<td><a href="#DebugBase.__extractSystemExitMessage">__extractSystemExitMessage</a></td> +<td>Private method to get the SystemExit code and message.</td> +</tr> +<tr> +<td><a href="#DebugBase.__extract_stack">__extract_stack</a></td> +<td>Private member to return a list of stack frames.</td> +</tr> +<tr> +<td><a href="#DebugBase.__sendCallTrace">__sendCallTrace</a></td> +<td>Private method to send a call/return trace.</td> +</tr> +<tr> +<td><a href="#DebugBase.__skipFrame">__skipFrame</a></td> +<td>Private method to filter out debugger files.</td> +</tr> +<tr> +<td><a href="#DebugBase._set_stopinfo">_set_stopinfo</a></td> +<td>Protected method to update the frame pointers.</td> +</tr> +<tr> +<td><a href="#DebugBase.bootstrap">bootstrap</a></td> +<td>Public method to bootstrap a thread.</td> +</tr> +<tr> +<td><a href="#DebugBase.break_here">break_here</a></td> +<td>Public method reimplemented from bdb.py to fix the filename from the frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.fix_frame_filename">fix_frame_filename</a></td> +<td>Public method used to fixup the filename for a given frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.getCurrentFrame">getCurrentFrame</a></td> +<td>Public method to return the current frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.getFrameLocals">getFrameLocals</a></td> +<td>Public method to return the locals dictionary of the current frame or a frame below.</td> +</tr> +<tr> +<td><a href="#DebugBase.getStack">getStack</a></td> +<td>Public method to get the stack.</td> +</tr> +<tr> +<td><a href="#DebugBase.go">go</a></td> +<td>Public method to resume the thread.</td> +</tr> +<tr> +<td><a href="#DebugBase.move_instruction_pointer">move_instruction_pointer</a></td> +<td>Public methode to move the instruction pointer to another line.</td> +</tr> +<tr> +<td><a href="#DebugBase.profile">profile</a></td> +<td>Public method used to trace some stuff independent of the debugger trace function.</td> +</tr> +<tr> +<td><a href="#DebugBase.profileWithRecursion">profileWithRecursion</a></td> +<td>Public method used to trace some stuff independent of the debugger trace function.</td> +</tr> +<tr> +<td><a href="#DebugBase.run">run</a></td> +<td>Public method to start a given command under debugger control.</td> +</tr> +<tr> +<td><a href="#DebugBase.setRecursionDepth">setRecursionDepth</a></td> +<td>Public method to determine the current recursion depth.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_continue">set_continue</a></td> +<td>Public method to stop only on next breakpoint.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_next">set_next</a></td> +<td>Public method to stop on the next line in or below the given frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_quit">set_quit</a></td> +<td>Public method to quit.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_return">set_return</a></td> +<td>Public method to stop when returning from the given frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_step">set_step</a></td> +<td>Public method to stop after one line of code.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_trace">set_trace</a></td> +<td>Public method to start debugging from 'frame'.</td> +</tr> +<tr> +<td><a href="#DebugBase.set_until">set_until</a></td> +<td>Public method to stop when the line with the lineno greater than the current one is reached or when returning from current frame.</td> +</tr> +<tr> +<td><a href="#DebugBase.step">step</a></td> +<td>Public method to perform a step operation in this thread.</td> +</tr> +<tr> +<td><a href="#DebugBase.stepOut">stepOut</a></td> +<td>Public method to perform a step out of the current call.</td> +</tr> +<tr> +<td><a href="#DebugBase.stop_here">stop_here</a></td> +<td>Public method reimplemented to filter out debugger files.</td> +</tr> +<tr> +<td><a href="#DebugBase.storeFrameLocals">storeFrameLocals</a></td> +<td>Public method to store the locals into the frame, so an access to frame.f_locals returns the last data.</td> +</tr> +<tr> +<td><a href="#DebugBase.tracePythonLibs">tracePythonLibs</a></td> +<td>Public method to update the settings to trace into Python libraries.</td> +</tr> +<tr> +<td><a href="#DebugBase.trace_dispatch">trace_dispatch</a></td> +<td>Public method reimplemented from bdb.py to do some special things.</td> +</tr> +<tr> +<td><a href="#DebugBase.user_exception">user_exception</a></td> +<td>Public method reimplemented to report an exception to the debug server.</td> +</tr> +<tr> +<td><a href="#DebugBase.user_line">user_line</a></td> +<td>Public method reimplemented to handle the program about to execute a particular line.</td> +</tr> +</table> +<h3>Static Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> + +<a NAME="DebugBase.__init__" ID="DebugBase.__init__"></a> +<h4>DebugBase (Constructor)</h4> +<b>DebugBase</b>(<i>dbgClient</i>) + +<p> + Constructor +</p> +<dl> + +<dt><i>dbgClient</i></dt> +<dd> +the owning client +</dd> +</dl> +<a NAME="DebugBase.__checkBreakInFrame" ID="DebugBase.__checkBreakInFrame"></a> +<h4>DebugBase.__checkBreakInFrame</h4> +<b>__checkBreakInFrame</b>(<i>frame</i>) + +<p> + Private method to check if the function / method has a line number + which is a breakpoint. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +Flag indicating a function / method with breakpoint +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<a NAME="DebugBase.__disassemble" ID="DebugBase.__disassemble"></a> +<h4>DebugBase.__disassemble</h4> +<b>__disassemble</b>(<i>frame</i>) + +<p> + Private method to generate a disassembly of the given code object. +</p> +<dl> + +<dt><i>frame</i> (code)</dt> +<dd> +frame object to be disassembled +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +dictionary containing the disassembly information +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +dict +</dd> +</dl> +<a NAME="DebugBase.__do_clearBreak" ID="DebugBase.__do_clearBreak"></a> +<h4>DebugBase.__do_clearBreak</h4> +<b>__do_clearBreak</b>(<i>filename, lineno</i>) + +<p> + Private method called to clear a temporary breakpoint. +</p> +<dl> + +<dt><i>filename</i> (str)</dt> +<dd> +name of the file the bp belongs to +</dd> +<dt><i>lineno</i> (int)</dt> +<dd> +linenumber of the bp +</dd> +</dl> +<a NAME="DebugBase.__do_clearWatch" ID="DebugBase.__do_clearWatch"></a> +<h4>DebugBase.__do_clearWatch</h4> +<b>__do_clearWatch</b>(<i>cond</i>) + +<p> + Private method called to clear a temporary watch expression. +</p> +<dl> + +<dt><i>cond</i> (str)</dt> +<dd> +expression of the watch expression to be cleared +</dd> +</dl> +<a NAME="DebugBase.__eventPollTimer" ID="DebugBase.__eventPollTimer"></a> +<h4>DebugBase.__eventPollTimer</h4> +<b>__eventPollTimer</b>(<i></i>) + +<p> + Private method to set a flag every 0.5 s to check for new messages. +</p> +<a NAME="DebugBase.__extractExceptionName" ID="DebugBase.__extractExceptionName"></a> +<h4>DebugBase.__extractExceptionName</h4> +<b>__extractExceptionName</b>(<i>exctype</i>) + +<p> + Private method to extract the exception name given the exception + type object. +</p> +<dl> + +<dt><i>exctype</i></dt> +<dd> +type of the exception +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +exception name (string) +</dd> +</dl> +<a NAME="DebugBase.__extractSystemExitMessage" ID="DebugBase.__extractSystemExitMessage"></a> +<h4>DebugBase.__extractSystemExitMessage</h4> +<b>__extractSystemExitMessage</b>(<i>excinfo</i>) + +<p> + Private method to get the SystemExit code and message. +</p> +<dl> + +<dt><i>excinfo</i> (tuple(Exception, excval object, traceback frame object))</dt> +<dd> +details about the SystemExit exception +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +SystemExit code and message +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +int, str +</dd> +</dl> +<a NAME="DebugBase.__extract_stack" ID="DebugBase.__extract_stack"></a> +<h4>DebugBase.__extract_stack</h4> +<b>__extract_stack</b>(<i>exctb</i>) + +<p> + Private member to return a list of stack frames. +</p> +<dl> + +<dt><i>exctb</i></dt> +<dd> +exception traceback +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +list of stack frames +</dd> +</dl> +<a NAME="DebugBase.__sendCallTrace" ID="DebugBase.__sendCallTrace"></a> +<h4>DebugBase.__sendCallTrace</h4> +<b>__sendCallTrace</b>(<i>event, fromFrame, toFrame</i>) + +<p> + Private method to send a call/return trace. +</p> +<dl> + +<dt><i>event</i> (str)</dt> +<dd> +trace event +</dd> +<dt><i>fromFrame</i> (frame object)</dt> +<dd> +originating frame +</dd> +<dt><i>toFrame</i> (frame object)</dt> +<dd> +destination frame +</dd> +</dl> +<a NAME="DebugBase.__skipFrame" ID="DebugBase.__skipFrame"></a> +<h4>DebugBase.__skipFrame</h4> +<b>__skipFrame</b>(<i>frame</i>) + +<p> + Private method to filter out debugger files. +</p> +<p> + Tracing is turned off for files that are part of the + debugger that are called from the application being debugged. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating whether the debugger should skip this frame +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<a NAME="DebugBase._set_stopinfo" ID="DebugBase._set_stopinfo"></a> +<h4>DebugBase._set_stopinfo</h4> +<b>_set_stopinfo</b>(<i>stopframe, returnframe, stoplineno=0</i>) + +<p> + Protected method to update the frame pointers. +</p> +<dl> + +<dt><i>stopframe</i> (frame object)</dt> +<dd> +the frame object where to stop +</dd> +<dt><i>returnframe</i> (frame object)</dt> +<dd> +the frame object where to stop on a function return +</dd> +<dt><i>stoplineno</i> (int)</dt> +<dd> +line number to stop at. If stoplineno is greater than + or equal to 0, then stop at line greater than or equal to the + stopline. If stoplineno is -1, then don't stop at all. +</dd> +</dl> +<a NAME="DebugBase.bootstrap" ID="DebugBase.bootstrap"></a> +<h4>DebugBase.bootstrap</h4> +<b>bootstrap</b>(<i>target, args, kwargs</i>) + +<p> + Public method to bootstrap a thread. +</p> +<p> + It wraps the call to the user function to enable tracing + before hand. +</p> +<dl> + +<dt><i>target</i> (function pointer)</dt> +<dd> +function which is called in the new created thread +</dd> +<dt><i>args</i> (tuple)</dt> +<dd> +arguments to pass to target +</dd> +<dt><i>kwargs</i> (dict)</dt> +<dd> +keyword arguments to pass to target +</dd> +</dl> +<a NAME="DebugBase.break_here" ID="DebugBase.break_here"></a> +<h4>DebugBase.break_here</h4> +<b>break_here</b>(<i>frame</i>) + +<p> + Public method reimplemented from bdb.py to fix the filename from the + frame. +</p> +<p> + See fix_frame_filename for more info. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating the break status +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<a NAME="DebugBase.fix_frame_filename" ID="DebugBase.fix_frame_filename"></a> +<h4>DebugBase.fix_frame_filename</h4> +<b>fix_frame_filename</b>(<i>frame</i>) + +<p> + Public method used to fixup the filename for a given frame. +</p> +<p> + The logic employed here is that if a module was loaded + from a .pyc file, then the correct .py to operate with + should be in the same path as the .pyc. The reason this + logic is needed is that when a .pyc file is generated, the + filename embedded and thus what is readable in the code object + of the frame object is the fully qualified filepath when the + pyc is generated. If files are moved from machine to machine + this can break debugging as the .pyc will refer to the .py + on the original machine. Another case might be sharing + code over a network... This logic deals with that. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +fixed up file name +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<a NAME="DebugBase.getCurrentFrame" ID="DebugBase.getCurrentFrame"></a> +<h4>DebugBase.getCurrentFrame</h4> +<b>getCurrentFrame</b>(<i></i>) + +<p> + Public method to return the current frame. +</p> +<dl> +<dt>Return:</dt> +<dd> +the current frame +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +frame object +</dd> +</dl> +<a NAME="DebugBase.getFrameLocals" ID="DebugBase.getFrameLocals"></a> +<h4>DebugBase.getFrameLocals</h4> +<b>getFrameLocals</b>(<i>frmnr=0</i>) + +<p> + Public method to return the locals dictionary of the current frame + or a frame below. +</p> +<dl> + +<dt><i>frmnr</i></dt> +<dd> +distance of frame to get locals dictionary of. 0 is + the current frame (int) +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +locals dictionary of the frame +</dd> +</dl> +<a NAME="DebugBase.getStack" ID="DebugBase.getStack"></a> +<h4>DebugBase.getStack</h4> +<b>getStack</b>(<i>frame=None, applyTrace=False</i>) + +<p> + Public method to get the stack. +</p> +<dl> + +<dt><i>frame</i> (frame object or list)</dt> +<dd> +frame object to inspect +</dd> +<dt><i>applyTrace</i> (bool)</dt> +<dd> +flag to assign trace function to fr.f_trace +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +list of lists with file name (string), line number (integer) + and function name (string) +</dd> +</dl> +<a NAME="DebugBase.go" ID="DebugBase.go"></a> +<h4>DebugBase.go</h4> +<b>go</b>(<i>special</i>) + +<p> + Public method to resume the thread. +</p> +<p> + It resumes the thread stopping only at breakpoints or exceptions. +</p> +<dl> + +<dt><i>special</i></dt> +<dd> +flag indicating a special continue operation +</dd> +</dl> +<a NAME="DebugBase.move_instruction_pointer" ID="DebugBase.move_instruction_pointer"></a> +<h4>DebugBase.move_instruction_pointer</h4> +<b>move_instruction_pointer</b>(<i>lineno</i>) + +<p> + Public methode to move the instruction pointer to another line. +</p> +<dl> + +<dt><i>lineno</i> (int)</dt> +<dd> +new line number +</dd> +</dl> +<a NAME="DebugBase.profile" ID="DebugBase.profile"></a> +<h4>DebugBase.profile</h4> +<b>profile</b>(<i>frame, event, arg</i>) + +<p> + Public method used to trace some stuff independent of the debugger + trace function. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +current stack frame +</dd> +<dt><i>event</i> (str)</dt> +<dd> +trace event +</dd> +<dt><i>arg</i> (depends on the previous event parameter)</dt> +<dd> +arguments +</dd> +</dl> +<a NAME="DebugBase.profileWithRecursion" ID="DebugBase.profileWithRecursion"></a> +<h4>DebugBase.profileWithRecursion</h4> +<b>profileWithRecursion</b>(<i>frame, event, arg</i>) + +<p> + Public method used to trace some stuff independent of the debugger + trace function. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +current stack frame +</dd> +<dt><i>event</i> (str)</dt> +<dd> +trace event +</dd> +<dt><i>arg</i> (depends on the previous event parameter)</dt> +<dd> +arguments +</dd> +</dl> +<dl> + +<dt>Raises <b>RuntimeError</b>:</dt> +<dd> +raised to indicate too many recursions +</dd> +</dl> +<a NAME="DebugBase.run" ID="DebugBase.run"></a> +<h4>DebugBase.run</h4> +<b>run</b>(<i>cmd, globalsDict=None, localsDict=None, debug=True, closeSession=True</i>) + +<p> + Public method to start a given command under debugger control. +</p> +<dl> + +<dt><i>cmd</i> (str or CodeType)</dt> +<dd> +command / code to execute under debugger control +</dd> +<dt><i>globalsDict</i> (dict)</dt> +<dd> +dictionary of global variables for cmd +</dd> +<dt><i>localsDict</i> (dict)</dt> +<dd> +dictionary of local variables for cmd +</dd> +<dt><i>debug</i> (bool)</dt> +<dd> +flag if command should run under debugger control +</dd> +<dt><i>closeSession</i> (bool)</dt> +<dd> +flag indicating to close the debugger session + at exit +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +exit code of the program +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +int +</dd> +</dl> +<a NAME="DebugBase.setRecursionDepth" ID="DebugBase.setRecursionDepth"></a> +<h4>DebugBase.setRecursionDepth</h4> +<b>setRecursionDepth</b>(<i>frame</i>) + +<p> + Public method to determine the current recursion depth. +</p> +<dl> + +<dt><i>frame</i></dt> +<dd> +The current stack frame. +</dd> +</dl> +<a NAME="DebugBase.set_continue" ID="DebugBase.set_continue"></a> +<h4>DebugBase.set_continue</h4> +<b>set_continue</b>(<i>special</i>) + +<p> + Public method to stop only on next breakpoint. +</p> +<dl> + +<dt><i>special</i> (bool)</dt> +<dd> +flag indicating a special continue operation +</dd> +</dl> +<a NAME="DebugBase.set_next" ID="DebugBase.set_next"></a> +<h4>DebugBase.set_next</h4> +<b>set_next</b>(<i>frame</i>) + +<p> + Public method to stop on the next line in or below the given frame. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<a NAME="DebugBase.set_quit" ID="DebugBase.set_quit"></a> +<h4>DebugBase.set_quit</h4> +<b>set_quit</b>(<i></i>) + +<p> + Public method to quit. +</p> +<p> + Disables the trace functions and resets all frame pointer. +</p> +<a NAME="DebugBase.set_return" ID="DebugBase.set_return"></a> +<h4>DebugBase.set_return</h4> +<b>set_return</b>(<i>frame</i>) + +<p> + Public method to stop when returning from the given frame. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<a NAME="DebugBase.set_step" ID="DebugBase.set_step"></a> +<h4>DebugBase.set_step</h4> +<b>set_step</b>(<i></i>) + +<p> + Public method to stop after one line of code. +</p> +<a NAME="DebugBase.set_trace" ID="DebugBase.set_trace"></a> +<h4>DebugBase.set_trace</h4> +<b>set_trace</b>(<i>frame=None</i>) + +<p> + Public method to start debugging from 'frame'. +</p> +<p> + If frame is not specified, debugging starts from caller's frame. + Because of jump optimizations it's not possible to use sys.breakpoint() + as last instruction in a function or method. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +frame to start debugging from +</dd> +</dl> +<a NAME="DebugBase.set_until" ID="DebugBase.set_until"></a> +<h4>DebugBase.set_until</h4> +<b>set_until</b>(<i>frame=None, lineno=None</i>) + +<p> + Public method to stop when the line with the lineno greater than the + current one is reached or when returning from current frame. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +reference to the frame object +</dd> +<dt><i>lineno</i> (int)</dt> +<dd> +line number to continue to +</dd> +</dl> +<a NAME="DebugBase.step" ID="DebugBase.step"></a> +<h4>DebugBase.step</h4> +<b>step</b>(<i>traceMode</i>) + +<p> + Public method to perform a step operation in this thread. +</p> +<dl> + +<dt><i>traceMode</i></dt> +<dd> +If it is True, then the step is a step into, + otherwise it is a step over. +</dd> +</dl> +<a NAME="DebugBase.stepOut" ID="DebugBase.stepOut"></a> +<h4>DebugBase.stepOut</h4> +<b>stepOut</b>(<i></i>) + +<p> + Public method to perform a step out of the current call. +</p> +<a NAME="DebugBase.stop_here" ID="DebugBase.stop_here"></a> +<h4>DebugBase.stop_here</h4> +<b>stop_here</b>(<i>frame</i>) + +<p> + Public method reimplemented to filter out debugger files. +</p> +<p> + Tracing is turned off for files that are part of the + debugger that are called from the application being debugged. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +the frame object +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating whether the debugger should stop here +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<a NAME="DebugBase.storeFrameLocals" ID="DebugBase.storeFrameLocals"></a> +<h4>DebugBase.storeFrameLocals</h4> +<b>storeFrameLocals</b>(<i>frmnr=0</i>) + +<p> + Public method to store the locals into the frame, so an access to + frame.f_locals returns the last data. +</p> +<dl> + +<dt><i>frmnr</i></dt> +<dd> +distance of frame to store locals dictionary to. 0 is + the current frame (int) +</dd> +</dl> +<a NAME="DebugBase.tracePythonLibs" ID="DebugBase.tracePythonLibs"></a> +<h4>DebugBase.tracePythonLibs</h4> +<b>tracePythonLibs</b>(<i>enable</i>) + +<p> + Public method to update the settings to trace into Python libraries. +</p> +<dl> + +<dt><i>enable</i> (bool)</dt> +<dd> +flag to debug into Python libraries +</dd> +</dl> +<a NAME="DebugBase.trace_dispatch" ID="DebugBase.trace_dispatch"></a> +<h4>DebugBase.trace_dispatch</h4> +<b>trace_dispatch</b>(<i>frame, event, arg</i>) + +<p> + Public method reimplemented from bdb.py to do some special things. +</p> +<p> + This specialty is to check the connection to the debug server + for new events (i.e. new breakpoints) while we are going through + the code. +</p> +<dl> + +<dt><i>frame</i> (frame object)</dt> +<dd> +The current stack frame +</dd> +<dt><i>event</i> (str)</dt> +<dd> +The trace event +</dd> +<dt><i>arg</i> (depends on the previous event parameter)</dt> +<dd> +The arguments +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +local trace function +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +trace function or None +</dd> +</dl> +<dl> + +<dt>Raises <b>SystemExit</b>:</dt> +<dd> + +</dd> +</dl> +<a NAME="DebugBase.user_exception" ID="DebugBase.user_exception"></a> +<h4>DebugBase.user_exception</h4> +<b>user_exception</b>(<i>excinfo, unhandled=False</i>) + +<p> + Public method reimplemented to report an exception to the debug server. +</p> +<dl> + +<dt><i>excinfo</i> (tuple(Exception, excval object, traceback frame object))</dt> +<dd> +details about the exception +</dd> +<dt><i>unhandled</i> (bool)</dt> +<dd> +flag indicating an uncaught exception +</dd> +</dl> +<a NAME="DebugBase.user_line" ID="DebugBase.user_line"></a> +<h4>DebugBase.user_line</h4> +<b>user_line</b>(<i>frame</i>) + +<p> + Public method reimplemented to handle the program about to execute a + particular line. +</p> +<dl> + +<dt><i>frame</i></dt> +<dd> +the frame object +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="printerr" ID="printerr"></a> +<h2>printerr</h2> +<b>printerr</b>(<i>s</i>) + +<p> + Module function used for debugging the debug client. +</p> +<dl> + +<dt><i>s</i></dt> +<dd> +data to be printed +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="setRecursionLimit" ID="setRecursionLimit"></a> +<h2>setRecursionLimit</h2> +<b>setRecursionLimit</b>(<i>limit</i>) + +<p> + Module function to set the recursion limit. +</p> +<dl> + +<dt><i>limit</i></dt> +<dd> +recursion limit (integer) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file