I’m currently in a Python interactive interpreter session. I have a function that I know is doing something funky, so I want to step through it in a debugger session. I know the file name and line number of the function.
Is there any way for me to now set a breakpoint in the start of that function, then run it and step through it? Without having to open an editor, locate the file, locate the function, manually insert import pdb; pdb.set_trace(), saving the file, then go back to the interpreter, reload the module the function came from and running it? Not to mention that if I forgot to remove the pdb trace that’d spell trouble later.
Summarizing the question: If I’m in a normal Python interpreter session (or iPython), is it possible to set a breakpoint somewhere and start debugging, without having to actually edit in the code pdb.set_trace() somewhere?
I can’t believe I missed this, but I just glanced over the pdb documentation a second time and realized that all the
run*functions do pretty much exactly what I want. They don’t let me set a specific line as a breakpoint, but I can pass the function and the arguments I want to use, and it will break on the first line of the function:Well actually it broke at a mystical location called “EOF”:
and I had to step twice before I got to the first line of the function, but that’s hardly a problem.