python debugger initialising with file

2019-08-06 05:55发布

I am running a code with pdb

python -m pdb somecode.py 3

I would like to pass a file on the command line, where I can specify the breakpoints. The code selects some dataset thought the passed parameter -- in this case 3. I am running this script on a cluster. I know it is possible setting up .pdbrc, but I have some jobs running this code on different datasets (on those datasets the code works properly) and I don't want to interfere with that -- actually the other jobs are on the cluster queue and they could start anytime.

EDIT: would it be possible to set breakpoints, continue to next breakpoint, set a variable, continue to next breakpoint?

标签: python pdb
1条回答
家丑人穷心不美
2楼-- · 2019-08-06 06:42

You can use -c option (python 3 only). Docs quote (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.

to set a breakpoint on line 3 (and go to it - second '-c' need for this):

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

about sequence of instructions: yes, multiple -c options = multiple instructions. But it seems that with this method you cant set variables: -c "aaa=1" not works. You can try to use alias command to predefine some vars through command line args - additional manual command in pdb and all needed will be set:

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)
查看更多
登录 后发表回答