Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 我可以从交互式解释器启动调试吗?_Debugging_Python - Fatal编程技术网

Debugging 我可以从交互式解释器启动调试吗?

Debugging 我可以从交互式解释器启动调试吗?,debugging,python,Debugging,Python,我目前正在进行Python交互式解释器会话。我有一个函数,我知道它正在做一些奇怪的事情,所以我想在调试器会话中逐步完成它。我知道函数的文件名和行号 我现在有没有办法在函数的开头设置一个断点,然后运行它并逐步完成它?无需打开编辑器,找到文件,找到函数,手动插入import pdb;pdb.set_trace(),保存文件,然后返回解释器,重新加载函数来自的模块并运行它?更不用说,如果我忘了删除pdb跟踪,那以后可能会有麻烦 总结问题:如果我在一个普通的Python解释器会话(或iPython)中,

我目前正在进行Python交互式解释器会话。我有一个函数,我知道它正在做一些奇怪的事情,所以我想在调试器会话中逐步完成它。我知道函数的文件名和行号

我现在有没有办法在函数的开头设置一个断点,然后运行它并逐步完成它?无需打开编辑器,找到文件,找到函数,手动插入
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]