Debugging 我可以从交互式解释器启动调试吗?
我目前正在进行Python交互式解释器会话。我有一个函数,我知道它正在做一些奇怪的事情,所以我想在调试器会话中逐步完成它。我知道函数的文件名和行号 我现在有没有办法在函数的开头设置一个断点,然后运行它并逐步完成它?无需打开编辑器,找到文件,找到函数,手动插入Debugging 我可以从交互式解释器启动调试吗?,debugging,python,Debugging,Python,我目前正在进行Python交互式解释器会话。我有一个函数,我知道它正在做一些奇怪的事情,所以我想在调试器会话中逐步完成它。我知道函数的文件名和行号 我现在有没有办法在函数的开头设置一个断点,然后运行它并逐步完成它?无需打开编辑器,找到文件,找到函数,手动插入import pdb;pdb.set_trace(),保存文件,然后返回解释器,重新加载函数来自的模块并运行它?更不用说,如果我忘了删除pdb跟踪,那以后可能会有麻烦 总结问题:如果我在一个普通的Python解释器会话(或iPython)中,
import pdb;pdb.set_trace()
,保存文件,然后返回解释器,重新加载函数来自的模块并运行它?更不用说,如果我忘了删除pdb跟踪,那以后可能会有麻烦
总结问题:如果我在一个普通的Python解释器会话(或iPython)中,是否可以在某个地方设置断点并开始调试,而不必在代码
pdb.set_trace()
中的某个地方进行实际编辑?我不敢相信我错过了这一点,但我只是第二次浏览了一下,发现所有的run*
函数都能实现我想要的功能。他们不允许我将特定行设置为断点,但我可以传递函数和要使用的参数,它将在函数的第一行中断:
import pdb
pdb.runcall(my_wonky_function, "arg1", "arg2", *myargs)
实际上它在一个叫“EOF”的神秘地点爆炸了:
(Pdb)列表
[EOF]
在到达函数的第一行之前,我必须走两步,但这几乎不是问题
(Pdb) list
[EOF]