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)
我是运行一个码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)