Issue
Here are my actions in IPython:
> import my_module
> import ipdb
Now, my module lacks any executable code, it only declares classes. So I want to make a statement:
> g = my_module.Graph()
> f = open('test.osm')
> g.from_osm(f)
I want to put a breakpoint inside Graph.from_osm, without editing the file. I don't want to put the latter lines into the file and to do python -m ipdb ...
. I just want to run commands and debug.
Is this possible?
added: I see, it's possible to
%run -d script_name
or
> import pdb
> pdb.run('statement')
but it's impossible to do ipdb.run('statement')
, there's no .run
in ipdb
!
Solution
Since IPython 3.2.2
, the %debug
magic, if given an argument (a single line or a cell), executes it under debugger.
- It breaks before executing anything, giving you a chance to set breakpoints and/or start stepping through the code.
- And it accepts a
--breakpoint
argument that sets one more breakpoint (as a part of the command, it'll be saved in command history, saving you typing for repeated invocations).
Answered By - ivan_pozdeev
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.