debugging in eclipse

C

chip9munk

Hi all!

I have a stupid problem, for which I cannot find a solution...

I have a python module, lets call it debugTest.py.

and it contains:
def test():
a=1
b=2
c=a+b
c

so as simple as possible.

Now I would like to debug it in eclipse.. (I have pydev and all)
so the question is how do I debug the test function? (by debug I mean go into it in the debugging mode and execute step by step, inspect the variables and so on.. you know, like it is so easily done in Matlab for example).

I place a break point in the function, run the debugger and it stars and is terminated immediately. (of course it does not know where to go..)

So how can I do this? please help!

Thank you all in advance!
 
D

Dave Angel

Hi all!

I have a stupid problem, for which I cannot find a solution...

I have a python module, lets call it debugTest.py.

and it contains:
def test():
a=1
b=2
c=a+b
c

so as simple as possible.

Now I would like to debug it in eclipse.. (I have pydev and all)
so the question is how do I debug the test function? (by debug I mean go into it in the debugging mode and execute step by step, inspect the variables and so on.. you know, like it is so easily done in Matlab for example).

I don't know Eclipse, but you probably have to have some top-level code
in your program. As it stands, it's just an importable module, doing
nothing useful when you run it.

Add a call to test() to the end of the file, and it might do better.
I'd also add a print statement, just to assure yourself that it's running.
 
U

Ulrich Eckhardt

Am 15.11.2012 13:29, schrieb (e-mail address removed):
I have a python module, lets call it debugTest.py.

and it contains:
def test():
a=1
b=2
c=a+b
c

so as simple as possible.

Should that be "return c" instead of "c" on a line?

Now I would like to debug it in eclipse.. (I have pydev and all) so
the question is how do I debug the test function? [...]
I place a break point in the function, run the debugger and it stars
and is terminated immediately.

For a start, I would try to actually call the function. Just add
"print(test())" after the function definition.

Uli
 
M

Martin P. Hellwig

Hi all!



I have a stupid problem, for which I cannot find a solution...



I have a python module, lets call it debugTest.py.



and it contains:

def test():

a=1

b=2

c=a+b

c



so as simple as possible.



Now I would like to debug it in eclipse.. (I have pydev and all)

so the question is how do I debug the test function? (by debug I mean go into it in the debugging mode and execute step by step, inspect the variables and so on.. you know, like it is so easily done in Matlab for example).



I place a break point in the function, run the debugger and it stars and is terminated immediately. (of course it does not know where to go..)



So how can I do this? please help!



Thank you all in advance!

I assume you have at the end of the debugTest.py file something like this:

if __name__ == '__main__':
test()
 
C

chip9munk

Add a call to test() to the end of the file, and it might do better.

I'd also add a print statement, just to assure yourself that it's running.

thanks, that is it, (stupid me) now if I have many functions in the model I will simply ad a call to the specific function at the end and that is it...

working on the project too long, all the simple and smart ideas are long gone ;)

thanks!
 
C

chip9munk

Add a call to test() to the end of the file, and it might do better.

I'd also add a print statement, just to assure yourself that it's running.

thanks, that is it, (stupid me) now if I have many functions in the model I will simply ad a call to the specific function at the end and that is it...

working on the project too long, all the simple and smart ideas are long gone ;)

thanks!
 
C

chip9munk

I assume you have at the end of the debugTest.py file something like this:
if __name__ == '__main__':
test()

no i did not have it...

is main really necessary?
 
R

Roy Smith

Dave Angel said:
I'd also add a print statement, just to assure yourself that it's running.

My trick to make sure something is running is to add "assert 0".

To be fair, I usually start by adding a print statement, as Dave
suggests. If I see the output, I know it ran. But if I don't see the
output, there's two possibilities. Either it didn't run, or it ran but
something snarfed the output and hid it from my eyes. That's common in
test frameworks. It's also common in background processes where stdout
goes who-knows-where, and it's anybody's guess how the logging config
might be borked.

On the other hand, an "assert 0" is pretty much guaranteed to produce
some visible evidence that it ran. About the only thing that would stop
it is if somebody had wrapped the code in a try block which caught
AssertionError (or Exception).
 
C

chip9munk

Should that be "return c" instead of "c" on a line?

oh it is just a silly example function, the functionality is not important. It does not have to return anything...
For a start, I would try to actually call the function. Just add
"print(test())" after the function definition.

yes I call the function now, that was the thing...
 
A

alex23

It is also guaranteed to run, unlike assert.

Only if they actively pass the command line switch to turn it off,
which I'd assume someone intentionally using an assertion wouldn't do.
 
S

Steven D'Aprano

Only if they actively pass the command line switch to turn it off,

Not necessarily "actively".

On Linux you can set up command aliases, e.g. `alias python=python -O`
and I dare say there is some equivalent under Windows. Once you have done
so (which could be many months in the past, and forgotten about) you no
longer need to actively specify -O to run with optimization on.
which
I'd assume someone intentionally using an assertion wouldn't do.

Provided that they know the side-effect of -O, and that the code contains
an assertion.

Not all code is executed by the same person who wrote it, and not all
people remember every fine detail about every script they wrote. I
couldn't possibly tell you what all my scripts do without checking the
source code.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,015
Latest member
AmbrosePal

Latest Threads

Top