python debugger tips?

  • Thread starter just.another.random.user
  • Start date
J

just.another.random.user

Hi All,

I'm switching to python from perl, and like the language a ton, but I
find pdb and pydb to be vastly inferior debuggers to the perl version.

In particular, I've grown very used to stepping into arbitrary
functions interactively. For instance, in perl you can do this:

casqa1:~> perl -de 42

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1): 42
DB<1> sub foo {return 42}



DB<2> s foo()
main::((eval 7)[/usr/local/lib/perl5/5.8.6/perl5db.pl:628]:3):
3: foo();


DB<<3>> s
main::foo((eval 6)[/usr/local/lib/perl5/5.8.6/perl5db.pl:628]:2):
2: sub foo {return 42};
DB<<3>>



Which is quite awesome; I don't have to restart the program if I want
to step through a given function call with a different set of values.

Does anyone have advice on any macros or something that i could use to
do this?

Additionally, what do people recommend as good "advanced" python
debugger guides? Explaining breakpoints and all is useful, but I
really want to know how to make sophisticated macros and interact with
the debugger from the interactive prompt.

Thanks!
Y
 
A

aizenman

take a look at winpdb (which has no relation with Windows-OS !!

cheers,
Stef

Looks pretty cool; sadly, our sysadmin refuses to install wxwindows,
and the commandline version is fairly cryptic...

Thanks!
Y
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
Hi All,

I'm switching to python from perl, and like the language a ton, but I
find pdb and pydb to be vastly inferior debuggers to the perl version.

In particular, I've grown very used to stepping into arbitrary
functions interactively. For instance, in perl you can do this:

casqa1:~> perl -de 42

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1): 42
DB<1> sub foo {return 42}



DB<2> s foo()
main::((eval 7)[/usr/local/lib/perl5/5.8.6/perl5db.pl:628]:3):
3: foo();


DB<<3>> s
main::foo((eval 6)[/usr/local/lib/perl5/5.8.6/perl5db.pl:628]:2):
2: sub foo {return 42};
DB<<3>>



Which is quite awesome; I don't have to restart the program if I want
to step through a given function call with a different set of values.

In your python shell:

import somelib
import pdb
pdb.runcall(somelib.somefunc, 42, foo='bar')


Also and IIRC, ipython (an alternative and more featurefull python
shell) has some interesting stuff wrt/ pdb integration.
 
J

Jonathan Saxton

Being a bit of an old fart, I much prefer to do my text editing on a dark
background. I find the paper-emulation paradigm an interesting idea but
lacking in ergonomic value.

With a bit of jiggering I was able to get the 2.5 version of IDLE to work
the way I want, namely a black background with text in various colours. I
can ALMOST do the same thing with the IDLE that comes with python 3 except
that the window background remains steadfastly white. So I see colour on
black for all the portions of the screen where text appears, but the blank
areas (end of line to right margin) are white.

Has anyone else encountered such a problem or am I the only one to even try
it?
 
P

Pat

Hi All,

I'm switching to python from perl, and like the language a ton, but I
find pdb and pydb to be vastly inferior debuggers to the perl version.

In particular, I've grown very used to stepping into arbitrary
functions interactively. For instance, in perl you can do this:
Does anyone have advice on any macros or something that i could use to
do this?

Additionally, what do people recommend as good "advanced" python
debugger guides? Explaining breakpoints and all is useful, but I
really want to know how to make sophisticated macros and interact with
the debugger from the interactive prompt.

Thanks!
Y

I'd strongly recommend you try Wing Pro IDE (Windows or *IX)

http://wingware.com/

Free 30 day trial (10 days at a time). You can download and fully use
the program (it's not crippled) without having to use a credit card.
$179/user/operating system.

Absolutely great for debugging code. You can take chunks of code and
put into the integrated Python shell (a Wing pane) and test it out.

As I'm writing code, I test out each line then blocks of code. While
running the program, the integrated Python shell recognizes your
variables and you can modify them on the fly.

I found Eclipse to be inscrutable for Python but I was able to
understand and use Wing within an hour or so. There's a free
showmedo.com video of the Wing IDE
(http://showmedo.com/videos/video?name=pythonOzsvaldWingIDEIntro)

Wing IDE Pro is missing some features that Eclipse has but I thought
that Wing was so much better than Eclipse that I paid for Wing Pro. The
license allowed me to put it on my home and work computers. I am in no
way affiliated with the company except that I'm a very satisfied customer.
 

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

No members online now.

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,708
Latest member
SherleneF1

Latest Threads

Top