Skip to main content

VIM PDB support

Project description

CAUTION: work-in-progress

PDB support for VIM.

Prerequisites: - a python-enabled VIM (test: “:python import os” in VIM) - VIM servermode compiled in (on OS X this requires MacVIM)

Usage

Open a terminal and start a VIM with servername ‘PDB’:

$ mvim --servername PDB

Then, from the program to be debugged use it like pdb,

>>> import vimpdb; vimpdb . set_trace()

(the blanks above are needed due to some dumb SVN precommit hook)

When this line is hit, PDB starts and your PDB-VIM should load the source code and highlight the current LOC. Additionally you should get a “PDB” menu, where you can set/toggle breakpoints etc.

The vimpdb code tries to launch MacVIM, which it will try to locate using the GVIM environment variable:

$ export GVIM=/User/seletz/bin/mvim

Note, the mvim script is a bash script included in the MacVIM package which tries to locate the MacVIM executable. If you have MacVIM in /Applications, then this should “Just Work”. For convenience, the above variable should be put in your ~/.bash_profile or similar.

How does (should) that work?

vimpdb is a subclass of pdb.Pdb, which hijacks the command loop and listens for UDP packets on port 6666 (blocking). To inform the VIM process what’s happening, it uses VIM’s remote commands.

On the VIM side there’s basically just a VIM script which does the higlight, set up the menu, and defines a function to send UDP messages.

That’s all.

Bugs

  • sometimes the vim script is not sourced correctly

  • there are no easy keyboard commands for using the debugger, one needs to use the menu.

  • no security

  • network settings hard coded

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vimpdb-0.2.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

vimpdb-0.2-py2.4.egg (13.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page