views:

25

answers:

1

This looks like something simple but I could not find the answer so far -

I have just learnt python and need to start learning pdb. In my module I have the usual if __name__ == __main_ trick to execute some code when the module is run as a program.

So far I have been running it via python -m mymod arg1 arg2 syntax

Now I want to do exactly the same thing from inside pdb. Normally in C, I would just do gdb mybinary followed by run arg1 arg2

But I cannot figure out how to achieve the same thing in pdb.

I am sure there has to be a simple way to achieve this but it is taking me too long to search for it..

Thanks for your help!

+1  A: 

Try:

python -m pdb mymod.py arg1 arg2

That should start up pdb debugging mymod.py (if mymod.py is not in the current directory then you'll have to specify the path).

Alternatively set a breakpoint in your code where you want to start debugging. The usual way to get a breakpoint into pdb is:

if somecondition:
    import pdb; pdb.set_trace()

You can make the condition whatever is convenient to ensure the breakpoint doesn't trigger too soon.

Duncan
Thanks, the second suggestion worked fine. The first one cannot load multiple modules using -m , I will figure out the syntax for that one later. For now, will just use the second way.
MK