On 11 Jan 2004 17:33:32 -0000, Peter Scott wrote: > In article <[EMAIL PROTECTED]>, > [EMAIL PROTECTED] (Gabor Szabo) writes: >> >> Any idea how can I use the debugger to find the cause of >> a deep recursion in my code ? > > I don't see the need for the debugger. Deep recursion is a > warning, so > just turn the warning into a fatal error with stack trace: > > % perl -MCarp=confess -we '$SIG{__WARN__} = sub {confess @_ }; \ > sub foo { foo() } foo'
Since this will turn ALL warnings into errors, you will have to make sure you don't have any warning-causing code in your program before you get to the recursion. You will also have to throw the -w switch when you call perl (as specified in the example above). If you currently are not running with -w (or use warnings;), be prepared for some cleanup work. -- Matthew O. Persico