Winpdb with Python3

You need to have python2.7 installed.

  1. cd /usr/lib/python3/dist-packages/
  2. cp /usr/lib/python2.7/dist-packages/rpdb2.py .
  3. Apply patch
    --- /usr/lib/python2.7/dist-packages/rpdb2.py   2010-08-17 22:12:52.000000000 +0300
    +++ rpdb2.py    2014-05-14 10:37:29.559752856 +0300
    @@ -7280,7 +7280,7 @@
             Set rpdb2 to wrap all signal handlers.
             """
             for key, value in list(vars(signal).items()):
    -            if not key.startswith('SIG') or key in ['SIG_IGN', 'SIG_DFL', 'SIGRTMIN', 'SIGRTMAX']:
    +            if not key.startswith('SIG') or key in ['SIG_IGN', 'SIG_DFL', 'SIGRTMIN', 'SIGRTMAX', 'SIG_BLOCK', 'SIG_BLOCK', 'SIG_UNBLOCK', 'SIG_SETMASK']:
                     continue
     
                 handler = signal.getsignal(value)
    

     

  4. Start Winpdb using python2
  5. Start rpdb2 using python3
    python3 /usr/lib/python3/dist-packages/rpdb2.py --debuggee myscript.py
  6. Attach the newly created debugger to Winpdb.