我有一个Python程序,里面有一个foo()函数。在
我用PDB运行程序,并在程序中的某个任意断点处停止。在
现在,我很容易从PDB中调用foo(),我只需键入:
!foo()
福跑了。一旦它完成,它就会回到PDB,而我仍然在我的程序之前所在的原始行等待。在
但现在让我们假设我希望PDB在foo内的断点处停止。我在foo()的第一行在源文件中设置了一个断点,然后执行!foo()。在
但是PDB不会在断点处停止。只有在程序中调用foo()而不是在程序运行时从PDB的命令行调用foo()时,它才停止。在
有人知道怎么解决这个问题吗?我搜索了PDB文档和Google都没有结果。在
(我之所以需要这样做是因为我的程序需要一个小时来读取所有启动所需的数据,而且我需要能够在一个调试会话中尽可能多地调试,而不是简单地添加断点并重新运行程序。因此,以交互方式调用函数并在内部调试函数的灵活性将非常有帮助。)
Python debugger: Stepping into a function that you have called interactively的答案是:PDB有一个“debug”命令,它允许您在调试器中对函数调用启动递归调试会话。在
相关问题 更多 >
编程相关推荐