Starting the debugger without breaking -------------------------------------- To start the debugger without actually pausing use:: from pudb import set_trace; set_trace(paused=False) at the top of your code. This will start the debugger without breaking, and run it until a predefined breakpoint is hit. You can also press ``b`` on a ``set_trace`` call inside the debugger, and it will prevent it from stopping there. Interrupt Handlers ------------------ ``set_trace`` sets ``SIGINT`` (i.e., ``Ctrl-c``) to run ``set_trace``, so that typing ``Ctrl-c`` while your code is running will break the code and start debugging. See the docstring of ``set_interrupt_handler`` for more information. Note that this only works in the main thread. Programming PuDB ---------------- At the programming language level, PuDB displays the same interface as Python's built-in `pdb module `_. Just replace ``pdb`` with ``pudb``. (One exception: ``run`` is called ``runstatement``.) Controlling How Values Get Shown -------------------------------- * Set a custom stringifer in the preferences. An example file might look like this:: def pudb_stringifier(obj): return "HI" * Add a method ``safely_stringify_for_pudb`` to the type. A stringifier is expected to *never* raise an exception. If an exception is raised, pudb will silently fall back to its built-in stringification behavior. A stringifier that takes a long time will further stall the debugger UI while it runs. Configuring PuDB ---------------- Overriding default key bindings ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Configure in the settings file (see :ref:`faq`). - Add the bindings under mentioned section in the config file (see :ref:`urwid:keyboard-input`). - Only few actions are supported currently, coverage will increase with time. (Contributions welcome!) .. code-block:: ini [pudb] # window chooser bindings hotkeys_breakpoints = B hotkeys_code = C hotkeys_stack = S hotkeys_variables = V hotkeys_toggle_cmdline_focus = ctrl x