HOW-TO:Debug python scripts with WinPDB

You can easily debug python scripts running inside XBMC in a few simple steps using WinPDB!

Requirements

 * XBMC installed on Linux or Windows (should also work fine on Mac)
 * Install WinPDB. Download the binary installer for Windows or Mac, use this command for Linux: $ sudo apt-get install winpdb
 * On Mac, Windows and some Linux distros you will also need to install wxPython. If you are using 32-bit python, use the 32-bit version. Always get the unicode version

Create a symlink for the debugger
How to make a symlink in Linux $ cd /home/ /.xbmc/scripts/Foo $ ln -s `find /usr/lib/pymodules -name rpdb2.py`
 * Assuming your script's name is Foo

How to make a symlink in Windows For Windows 7 mklink "C:\Program Files (x86)\XBMC\addons\plugin.video.icefilms\rpdb2.py" "C:\Python27\Scripts\rpdb2.py" For Windows XP, Vista fsutil hardlink "C:\Program Files (x86)\XBMC\addons\plugin.video.icefilms\rpdb2.py" "C:\Python27\Scripts\rpdb2.py" The first path makes the link in your addon folder, the second path tells the link to point to where the original rpdb2.py file can be found.
 * At Command Prompt type the equivalent of this, with your own paths:

Modify your script to enable debugger
import rpdb2 rpdb2.start_embedded_debugger('pw')
 * Edit /home/ /.xbmc/scripts/Foo/default.py and add the following code to the top

How to start WinPDB
C:\Python27\Scripts\winpdb.py
 * Linux: (Desktop Menu Bar -> Applications -> Programming -> Winpdb)
 * Windows/Mac: Execute winpdb.py. For a quicker launch, make shortcut on desktop for (example location:)

Start debugging session

 * From within XBMC, start your script (it will appear to sit there and hang)
 * Start WinPDB
 * In WinPDB, select File->Password and enter "pw" (no quotes)
 * Select File->Attach. You should see your running script in the list box along with its PID and filename.
 * Select your script and click OK. The debugger is now attached to your script.

Setting breakpoints
TBD