Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: I never use the debugger.

by brian_d_foy (Abbot)
on Jul 27, 2005 at 20:35 UTC ( [id://478713]=note: print w/replies, xml ) Need Help??


in reply to I never use the debugger.

I've found that I tend to not use the debugger with test driven development, an appropriate level of refactoring (so subroutines aren't that long), and decent coverage with tests.

I have used a lot of the debuggers out there, but I find most of them inadequate. Most of my work is module development, but debuggers want a script to run. I guess I could run a test script in the debugger, but if I have a nice test script, I already zero in on the problem pretty quickly. If I have to write a short script to isolate a problem, I find it pretty pointless to start up the debugger to run it.

If I need something else, I just use print() statements, or have some sort of conditional logging turned on.

The people have have tried to convince me to use one or another debugger are usually the sort that work on single scripts and modules from only CPAN (so they aren't debugging their own modules). I'm just not doing that sort of development, or looking for the same sort of errors they are. Your mileage may vary.

No matter what anyone says, however, do what works for you. Give other techniques a fair shot, but use what makes you productive. Different people will like different things.

--
brian d foy <brian@stonehenge.com>

Replies are listed 'Best First'.
Re^2: I never use the debugger.
by Anonymous Monk on Jul 27, 2005 at 22:01 UTC
    The people have have tried to convince me to use one or another debugger are usually the sort that work on single scripts and modules from only CPAN (so they aren't debugging their own modules).

    Odd. I found the perl debugger especially valuable for deciphering other people's modules, especially for bugs in CPAN modules.

    For example, about four or five years ago, there was a bug in one of the PDF modules we were using; the author had clearly forgotten the /g modify on one of his regexps, so that only the first occurance of a given class of special characters was being properly escaped.

    I didn't have to grasp the entire PDF specification, nor the author's intent in implementing that specification, in order to detect and correct the bug, because I had a nice debugger to guide me, and show me what was going on inside all the tricky objects and methods and twisty maze of function calls.

    Especially with OO, where a function can return objects from different classes, each of which has their own special version of a method call, it's very nice to know exactly what function is being called, and which data is being passed, when all the code says is "call method X with object Y".

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://478713]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-24 20:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found