21 Aug 2020 - The wiki is undergoing a major cleanup. If you arrived here from a search engine and cannot find the page, please use the wiki search instead (top right corner of page)
More info can be found on the forum
Archive:Debug python scripts with WinPDB
You can easily debug python scripts running inside XBMC in a few simple steps using WinPDB!
- 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
How to make a symlink in Linux
- Assuming your script's name is Foo
$ cd /home/<user>/.xbmc/scripts/Foo $ ln -s `find /usr/lib/pymodules -name rpdb2.py`
How to make a symlink in Windows
- At Command Prompt type the equivalent of this, with your own paths:
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.
3 Modify your script to enable debugger
- Edit /home/<user>/.xbmc/scripts/Foo/default.py and add the following code to the top
import rpdb2 rpdb2.start_embedded_debugger('pw')
4 How to start WinPDB
- Linux: (Desktop Menu Bar -> Applications -> Programming -> Winpdb)
- Windows/Mac: Execute winpdb.py. For a quicker launch, make shortcut on desktop for (example location:)
5 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.
6 Setting breakpoints