python 调试器正在使用文件初始化

python debugger initialising with file

我是运行一个码pdb

python -m pdb somecode.py 3

我想在命令行上传递一个文件,我可以在其中指定断点。代码选择一些数据集认为传递的参数——在这种情况下 3。我 运行 这个脚本在集群上。我知道可以设置 .pdbrc,但我有一些工作 运行 这段代码在不同的数据集上(在这些数据集上代码工作正常)而且我不想干扰它 - 实际上其他作业在集群队列中,可以随时启动。

编辑:是否可以设置断点,继续下一个断点,设置一个变量,继续下一个断点?

您可以使用 -c 选项(仅限 python 3)。文档引用 (https://docs.python.org/3/library/pdb.html):

New in version 3.2: pdb.py now accepts a -c option that executes commands as if given in a .pdbrc file, see Debugger Commands.

在第 3 行设置断点(然后转到它 - 为此需要第二个“-c”):

python -m pdb -c "b 3" -c c somecode.py 3

关于指令序列:是的,多个 -c 选项 = 多个指令。但似乎用这种方法你不能设置变量:-c "aaa=1" 不起作用。您可以尝试使用 alias 命令通过命令行参数预定义一些变量 - pdb 中的附加手动命令和所有需要的将被设置:

python -m pdb -c "b 3" -c c -c "alias setvars aaa=1;bbb=1" somecode.py 3
(Pdb) setvars
(Pdb) aaa
1
(Pdb) bbb
1
(Pdb)