As I know, %debug magic can do debug within one cell.
However, I have function calls across multiple cells.
For example,
In[1]:
You can use ipdb inside jupyter with:
from IPython.core.debugger import Tracer; Tracer()()
Edit: the functions above are deprecated since IPython 5.1. This is the new approach:
from IPython.core.debugger import set_trace
Add set_trace() where you need a breakpoint. Type help for ipdb commands when the input field appears.