blob: 6980353d7ad2500ca151d6772a2ff08839740ad2 [file] [log] [blame]
Georg Brandlb15a8df2007-12-02 14:37:29 +00001:mod:`bdb` --- Debugger framework
2=================================
3
4.. module:: bdb
5 :synopsis: Debugger framework.
6
Éric Araujo29a0b572011-08-19 02:14:03 +02007**Source code:** :source:`Lib/bdb.py`
8
9--------------
10
Georg Brandlb15a8df2007-12-02 14:37:29 +000011The :mod:`bdb` module handles basic debugger functions, like setting breakpoints
12or managing execution via the debugger.
13
14The following exception is defined:
15
16.. exception:: BdbQuit
17
18 Exception raised by the :class:`Bdb` class for quitting the debugger.
19
20
21The :mod:`bdb` module also defines two classes:
22
Serhiy Storchaka610f84a2013-12-23 18:19:34 +020023.. class:: Breakpoint(self, file, line, temporary=0, cond=None, funcname=None)
Georg Brandlb15a8df2007-12-02 14:37:29 +000024
25 This class implements temporary breakpoints, ignore counts, disabling and
26 (re-)enabling, and conditionals.
27
28 Breakpoints are indexed by number through a list called :attr:`bpbynumber`
29 and by ``(file, line)`` pairs through :attr:`bplist`. The former points to a
30 single instance of class :class:`Breakpoint`. The latter points to a list of
31 such instances since there may be more than one breakpoint per line.
32
33 When creating a breakpoint, its associated filename should be in canonical
34 form. If a *funcname* is defined, a breakpoint hit will be counted when the
35 first line of that function is executed. A conditional breakpoint always
36 counts a hit.
37
Benjamin Petersonc7b05922008-04-25 01:29:10 +000038 :class:`Breakpoint` instances have the following methods:
Georg Brandlb15a8df2007-12-02 14:37:29 +000039
Benjamin Petersonc7b05922008-04-25 01:29:10 +000040 .. method:: deleteMe()
Georg Brandlb15a8df2007-12-02 14:37:29 +000041
Benjamin Petersonc7b05922008-04-25 01:29:10 +000042 Delete the breakpoint from the list associated to a file/line. If it is
43 the last breakpoint in that position, it also deletes the entry for the
44 file/line.
Georg Brandlb15a8df2007-12-02 14:37:29 +000045
Georg Brandlb15a8df2007-12-02 14:37:29 +000046
Benjamin Petersonc7b05922008-04-25 01:29:10 +000047 .. method:: enable()
Georg Brandlb15a8df2007-12-02 14:37:29 +000048
Benjamin Petersonc7b05922008-04-25 01:29:10 +000049 Mark the breakpoint as enabled.
Georg Brandlb15a8df2007-12-02 14:37:29 +000050
Georg Brandlb15a8df2007-12-02 14:37:29 +000051
Benjamin Petersonc7b05922008-04-25 01:29:10 +000052 .. method:: disable()
Georg Brandlb15a8df2007-12-02 14:37:29 +000053
Benjamin Petersonc7b05922008-04-25 01:29:10 +000054 Mark the breakpoint as disabled.
Georg Brandlb15a8df2007-12-02 14:37:29 +000055
Benjamin Petersonc7b05922008-04-25 01:29:10 +000056
57 .. method:: pprint([out])
58
59 Print all the information about the breakpoint:
60
61 * The breakpoint number.
62 * If it is temporary or not.
63 * Its file,line position.
64 * The condition that causes a break.
65 * If it must be ignored the next N times.
66 * The breakpoint hit count.
Georg Brandlb15a8df2007-12-02 14:37:29 +000067
68
Andrew M. Kuchlingf6e3d7d2009-10-05 21:25:03 +000069.. class:: Bdb(skip=None)
Georg Brandlb15a8df2007-12-02 14:37:29 +000070
Andrew M. Kuchlingf6e3d7d2009-10-05 21:25:03 +000071 The :class:`Bdb` class acts as a generic Python debugger base class.
Georg Brandlb15a8df2007-12-02 14:37:29 +000072
73 This class takes care of the details of the trace facility; a derived class
74 should implement user interaction. The standard debugger class
75 (:class:`pdb.Pdb`) is an example.
76
Andrew M. Kuchlingf6e3d7d2009-10-05 21:25:03 +000077 The *skip* argument, if given, must be an iterable of glob-style
78 module name patterns. The debugger will not step into frames that
79 originate in a module that matches one of these patterns. Whether a
80 frame is considered to originate in a certain module is determined
81 by the ``__name__`` in the frame globals.
82
83 .. versionadded:: 2.7
84 The *skip* argument.
Georg Brandlb15a8df2007-12-02 14:37:29 +000085
Benjamin Petersonc7b05922008-04-25 01:29:10 +000086 The following methods of :class:`Bdb` normally don't need to be overridden.
Georg Brandlb15a8df2007-12-02 14:37:29 +000087
Benjamin Petersonc7b05922008-04-25 01:29:10 +000088 .. method:: canonic(filename)
Georg Brandlb15a8df2007-12-02 14:37:29 +000089
Benjamin Petersonc7b05922008-04-25 01:29:10 +000090 Auxiliary method for getting a filename in a canonical form, that is, as a
91 case-normalized (on case-insensitive filesystems) absolute path, stripped
92 of surrounding angle brackets.
Georg Brandlb15a8df2007-12-02 14:37:29 +000093
Benjamin Petersonc7b05922008-04-25 01:29:10 +000094 .. method:: reset()
Georg Brandlb15a8df2007-12-02 14:37:29 +000095
Benjamin Petersonc7b05922008-04-25 01:29:10 +000096 Set the :attr:`botframe`, :attr:`stopframe`, :attr:`returnframe` and
97 :attr:`quitting` attributes with values ready to start debugging.
Georg Brandlb15a8df2007-12-02 14:37:29 +000098
Benjamin Petersonc7b05922008-04-25 01:29:10 +000099 .. method:: trace_dispatch(frame, event, arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000100
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000101 This function is installed as the trace function of debugged frames. Its
102 return value is the new trace function (in most cases, that is, itself).
Georg Brandlb15a8df2007-12-02 14:37:29 +0000103
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000104 The default implementation decides how to dispatch a frame, depending on
105 the type of event (passed as a string) that is about to be executed.
106 *event* can be one of the following:
Georg Brandlb15a8df2007-12-02 14:37:29 +0000107
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000108 * ``"line"``: A new line of code is going to be executed.
109 * ``"call"``: A function is about to be called, or another code block
110 entered.
111 * ``"return"``: A function or other code block is about to return.
112 * ``"exception"``: An exception has occurred.
113 * ``"c_call"``: A C function is about to be called.
114 * ``"c_return"``: A C function has returned.
Georg Brandl21946af2010-10-06 09:28:45 +0000115 * ``"c_exception"``: A C function has raised an exception.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000116
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000117 For the Python events, specialized functions (see below) are called. For
118 the C events, no action is taken.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000119
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000120 The *arg* parameter depends on the previous event.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000121
Benjamin Peterson39ff59e2008-11-24 01:16:29 +0000122 See the documentation for :func:`sys.settrace` for more information on the
123 trace function. For more information on code and frame objects, refer to
124 :ref:`types`.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000125
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000126 .. method:: dispatch_line(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000127
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000128 If the debugger should stop on the current line, invoke the
129 :meth:`user_line` method (which should be overridden in subclasses).
130 Raise a :exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set
131 (which can be set from :meth:`user_line`). Return a reference to the
132 :meth:`trace_dispatch` method for further tracing in that scope.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000133
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000134 .. method:: dispatch_call(frame, arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000135
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000136 If the debugger should stop on this function call, invoke the
137 :meth:`user_call` method (which should be overridden in subclasses).
138 Raise a :exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set
139 (which can be set from :meth:`user_call`). Return a reference to the
140 :meth:`trace_dispatch` method for further tracing in that scope.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000141
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000142 .. method:: dispatch_return(frame, arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000143
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000144 If the debugger should stop on this function return, invoke the
145 :meth:`user_return` method (which should be overridden in subclasses).
146 Raise a :exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set
147 (which can be set from :meth:`user_return`). Return a reference to the
148 :meth:`trace_dispatch` method for further tracing in that scope.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000149
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000150 .. method:: dispatch_exception(frame, arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000151
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000152 If the debugger should stop at this exception, invokes the
153 :meth:`user_exception` method (which should be overridden in subclasses).
154 Raise a :exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set
155 (which can be set from :meth:`user_exception`). Return a reference to the
156 :meth:`trace_dispatch` method for further tracing in that scope.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000157
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000158 Normally derived classes don't override the following methods, but they may
159 if they want to redefine the definition of stopping and breakpoints.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000160
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000161 .. method:: stop_here(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000162
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000163 This method checks if the *frame* is somewhere below :attr:`botframe` in
164 the call stack. :attr:`botframe` is the frame in which debugging started.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000165
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000166 .. method:: break_here(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000167
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000168 This method checks if there is a breakpoint in the filename and line
169 belonging to *frame* or, at least, in the current function. If the
170 breakpoint is a temporary one, this method deletes it.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000171
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000172 .. method:: break_anywhere(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000173
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000174 This method checks if there is a breakpoint in the filename of the current
175 frame.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000176
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000177 Derived classes should override these methods to gain control over debugger
178 operation.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000179
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000180 .. method:: user_call(frame, argument_list)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000181
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000182 This method is called from :meth:`dispatch_call` when there is the
183 possibility that a break might be necessary anywhere inside the called
184 function.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000185
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000186 .. method:: user_line(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000187
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000188 This method is called from :meth:`dispatch_line` when either
Serhiy Storchaka26d936a2013-11-29 12:16:53 +0200189 :meth:`stop_here` or :meth:`break_here` yields ``True``.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000190
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000191 .. method:: user_return(frame, return_value)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000192
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000193 This method is called from :meth:`dispatch_return` when :meth:`stop_here`
Serhiy Storchaka26d936a2013-11-29 12:16:53 +0200194 yields ``True``.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000195
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000196 .. method:: user_exception(frame, exc_info)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000197
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000198 This method is called from :meth:`dispatch_exception` when
Serhiy Storchaka26d936a2013-11-29 12:16:53 +0200199 :meth:`stop_here` yields ``True``.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000200
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000201 .. method:: do_clear(arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000202
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000203 Handle how a breakpoint must be removed when it is a temporary one.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000204
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000205 This method must be implemented by derived classes.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000206
207
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000208 Derived classes and clients can call the following methods to affect the
209 stepping state.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000210
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000211 .. method:: set_step()
Georg Brandlb15a8df2007-12-02 14:37:29 +0000212
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000213 Stop after one line of code.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000214
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000215 .. method:: set_next(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000216
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000217 Stop on the next line in or below the given frame.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000218
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000219 .. method:: set_return(frame)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000220
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000221 Stop when returning from the given frame.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000222
Benjamin Peterson98353942008-05-11 14:13:25 +0000223 .. method:: set_until(frame)
224
225 Stop when the line with the line no greater than the current one is
Martin Panter4ed35fc2015-10-10 10:52:35 +0000226 reached or when returning from current frame.
Benjamin Peterson98353942008-05-11 14:13:25 +0000227
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000228 .. method:: set_trace([frame])
Georg Brandlb15a8df2007-12-02 14:37:29 +0000229
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000230 Start debugging from *frame*. If *frame* is not specified, debugging
231 starts from caller's frame.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000232
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000233 .. method:: set_continue()
Georg Brandlb15a8df2007-12-02 14:37:29 +0000234
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000235 Stop only at breakpoints or when finished. If there are no breakpoints,
236 set the system trace function to None.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000237
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000238 .. method:: set_quit()
Georg Brandlb15a8df2007-12-02 14:37:29 +0000239
Serhiy Storchaka26d936a2013-11-29 12:16:53 +0200240 Set the :attr:`quitting` attribute to ``True``. This raises :exc:`BdbQuit` in
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000241 the next call to one of the :meth:`dispatch_\*` methods.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000242
243
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000244 Derived classes and clients can call the following methods to manipulate
245 breakpoints. These methods return a string containing an error message if
246 something went wrong, or ``None`` if all is well.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000247
Hynek Schlawacke58ce012012-05-22 10:27:40 +0200248 .. method:: set_break(filename, lineno, temporary=0, cond=None, funcname=None)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000249
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000250 Set a new breakpoint. If the *lineno* line doesn't exist for the
251 *filename* passed as argument, return an error message. The *filename*
252 should be in canonical form, as described in the :meth:`canonic` method.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000253
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000254 .. method:: clear_break(filename, lineno)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000255
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000256 Delete the breakpoints in *filename* and *lineno*. If none were set, an
257 error message is returned.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000258
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000259 .. method:: clear_bpbynumber(arg)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000260
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000261 Delete the breakpoint which has the index *arg* in the
262 :attr:`Breakpoint.bpbynumber`. If *arg* is not numeric or out of range,
263 return an error message.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000264
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000265 .. method:: clear_all_file_breaks(filename)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000266
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000267 Delete all breakpoints in *filename*. If none were set, an error message
268 is returned.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000269
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000270 .. method:: clear_all_breaks()
Georg Brandlb15a8df2007-12-02 14:37:29 +0000271
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000272 Delete all existing breakpoints.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000273
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000274 .. method:: get_break(filename, lineno)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000275
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000276 Check if there is a breakpoint for *lineno* of *filename*.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000277
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000278 .. method:: get_breaks(filename, lineno)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000279
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000280 Return all breakpoints for *lineno* in *filename*, or an empty list if
281 none are set.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000282
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000283 .. method:: get_file_breaks(filename)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000284
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000285 Return all breakpoints in *filename*, or an empty list if none are set.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000286
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000287 .. method:: get_all_breaks()
Georg Brandlb15a8df2007-12-02 14:37:29 +0000288
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000289 Return all breakpoints that are set.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000290
291
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000292 Derived classes and clients can call the following methods to get a data
293 structure representing a stack trace.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000294
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000295 .. method:: get_stack(f, t)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000296
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000297 Get a list of records for a frame and all higher (calling) and lower
298 frames, and the size of the higher part.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000299
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000300 .. method:: format_stack_entry(frame_lineno, [lprefix=': '])
Georg Brandlb15a8df2007-12-02 14:37:29 +0000301
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000302 Return a string with information about a stack entry, identified by a
303 ``(frame, lineno)`` tuple:
Georg Brandlb15a8df2007-12-02 14:37:29 +0000304
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000305 * The canonical form of the filename which contains the frame.
306 * The function name, or ``"<lambda>"``.
307 * The input arguments.
308 * The return value.
309 * The line of code (if it exists).
Georg Brandlb15a8df2007-12-02 14:37:29 +0000310
311
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000312 The following two methods can be called by clients to use a debugger to debug
313 a :term:`statement`, given as a string.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000314
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000315 .. method:: run(cmd, [globals, [locals]])
Georg Brandlb15a8df2007-12-02 14:37:29 +0000316
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000317 Debug a statement executed via the :keyword:`exec` statement. *globals*
318 defaults to :attr:`__main__.__dict__`, *locals* defaults to *globals*.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000319
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000320 .. method:: runeval(expr, [globals, [locals]])
Georg Brandlb15a8df2007-12-02 14:37:29 +0000321
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000322 Debug an expression executed via the :func:`eval` function. *globals* and
323 *locals* have the same meaning as in :meth:`run`.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000324
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000325 .. method:: runctx(cmd, globals, locals)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000326
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000327 For backwards compatibility. Calls the :meth:`run` method.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000328
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000329 .. method:: runcall(func, *args, **kwds)
Georg Brandlb15a8df2007-12-02 14:37:29 +0000330
Benjamin Petersonc7b05922008-04-25 01:29:10 +0000331 Debug a single function call, and return its result.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000332
333
334Finally, the module defines the following functions:
335
336.. function:: checkfuncname(b, frame)
337
338 Check whether we should break here, depending on the way the breakpoint *b*
339 was set.
Georg Brandlc62ef8b2009-01-03 20:55:06 +0000340
Georg Brandlb15a8df2007-12-02 14:37:29 +0000341 If it was set via line number, it checks if ``b.line`` is the same as the one
342 in the frame also passed as argument. If the breakpoint was set via function
343 name, we have to check we are in the right frame (the right function) and if
344 we are in its first executable line.
345
346.. function:: effective(file, line, frame)
347
348 Determine if there is an effective (active) breakpoint at this line of code.
Georg Brandl86fed7d2010-11-26 18:26:04 +0000349 Return a tuple of the breakpoint and a boolean that indicates if it is ok
350 to delete a temporary breakpoint. Return ``(None, None)`` if there is no
351 matching breakpoint.
Georg Brandlb15a8df2007-12-02 14:37:29 +0000352
353.. function:: set_trace()
354
Georg Brandl86fed7d2010-11-26 18:26:04 +0000355 Start debugging with a :class:`Bdb` instance from caller's frame.