I usually resort to tracing with any means possible... Either the program is going in the wrong direction, or it's going the right way, but carrying around the wrong data. Data::Dumper is usually used at selected points in the trace, and tracing info is added in binary search order.
I hacked Class::Publisher to allow to to say Class::Publisher->add_subscriber('*' => sub { warn "@_" }); and get a trace of events. In my recent project this helps a lot.
I use throaway warns with Data::Dumper, or without, a lot. Data::Dumper usually helps if the objects stringify, which is sometimes the case.
I sometimes use Devel:: modules to help me get more output, or better intersected output.
Someday I'd like to say that I make use of ddd, though. Or maybe Dominus will finish the new debugger... =P
In reply to Re: I usually debug via...
by nothingmuch
in thread I usually debug via...
by rinceWind
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |