Debugging
Debugging Perl
The Perl code base consists of a part inherited from before the fork and a part rewritten since. These are identified below as "inherited code" and "new code" respectively.
New code
Inherited code
Finding code paths
Especially in old code, it's tough to identify exact code paths. One thing to watch out for is that old code contains 'require' statements inside functions, leading to functions in the current file being overwritten by functions in the required file.
Along the same lines do some functions call other functions which don't seem to exist in the current context. Usually another module defines such a function and that module is 'require'd at run time. Multiple modules may define a function by the given name. In such cases, it is often hard to determine which module has been loaded at run time and by consequence which function is being called.
Debugging (Pl/Pg)SQL
tbd
Debugging JavaScript
tbd