'n' in pdb moves me inside of the pdb.set_trace() method

こ雲淡風輕ζ 提交于 2019-12-01 15:30:35

问题


I'm trying to learn pdb using this tutorial referenced from another stackoverflow question, and I'm on the 3rd step of the Getting Started section.

In [12]: %paste
# epdb1.py -- experiment with the Python debugger, pdb
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
## -- End pasted text --
--Return--
> <ipython-input-12-48afa1c7ad72>(4)<module>()->None
-> pdb.set_trace()


(Pdb) l
  1     # epdb1.py -- experiment with the Python debugger, pdb
  2     import pdb
  3     a = "aaa"
  4  -> pdb.set_trace()
  5     b = "bbb"
  6     c = "ccc"
  7     final = a + b + c
  8     print final
[EOF]


(Pdb) n
> /Users/jg/anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py(3038)run_code()
-> sys.excepthook = old_excepthook
(Pdb) l
3033                    self.hooks.pre_run_code_hook()
3034                    #rprint('Running code', repr(code_obj)) # dbg
3035                    exec(code_obj, self.user_global_ns, self.user_ns)
3036                finally:
3037                    # Reset our crash handler in place
3038 ->                 sys.excepthook = old_excepthook
3039            except SystemExit as e:
3040                if result is not None:
3041                    result.error_in_exec = e
3042                self.showtraceback(exception_only=True)
3043                warn("To exit: use 'exit', 'quit', or Ctrl-D.", level=1)

It looks like n(ext) should move me to the next line in the current frame:

(Pdb) help next
n(ext)
Continue execution until the next line in the current function
is reached or it returns.

And seems to do that successfully in the tutorial's example. But in my ipython it appears to be moving me to the next line within the pdb.set_trace() code.

How do I simply navigate to the 'b = "bbb"' line?


回答1:


Try this in your ipython:

import pdb
def test_pdb_example():
    a = "aaa"
    pdb.set_trace() # use 'n' for navigate to next line
    b = "bbb"
    c = "ccc"
    final = a + b + c
    return final

test_pdb_example()


来源:https://stackoverflow.com/questions/32529638/n-in-pdb-moves-me-inside-of-the-pdb-set-trace-method

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!