From what I have read, there are two ways to debug code in Python:
With a traditional debugger such as pdb or ipdb. This supports c
pdb
ipdb
Running from inside Emacs' IPython-shell and breakpoint set via pdb.set_trace() should work.
Checked with python-mode.el, M-x ipython RET etc.