我有一个Python程序,其中包含一个名为foo()的函数。
我使用PDB运行该程序,并在程序中的任意断点处停止。
现在,我可以轻松地从PDB中调用foo()函数,只需输入:
!foo()
foo函数正在运行。一旦它完成,它就会返回到PDB,并且我仍然在程序原始行等待。
但是现在假设我想让PDB停在foo内部的断点上。我在源文件中foo()的第一行设置一个断点,然后执行!foo()。
但是PDB不会在断点处停止。如果从程序内部调用foo(),它似乎只会在那里停止,而不是在程序运行时从PDB的命令行中调用。
有人知道任何解决方法吗?我已经搜索了PDB文档和Google,但没有找到答案。
(我需要这样做的原因是我的程序需要一个小时才能读取所有必要数据进行引导,我需要能够在单个调试会话中尽可能多地进行调试,而不仅仅是添加断点并重新运行程序。因此,在交互式调用函数并在其中进行调试的灵活性将非常有帮助。)