The problem
You can't set a breakpoint in Perl unless the file has been loaded by the debugger. If you're code dynamically loads libraries, and you try to set a breakpoint in a library that hasn't been loaded yet, VimDebug.vim makes it appear that you successfully set the breakpoint. However, when you do a 'continue', the debugger will not stop at the breakpoint.
The fix
A fix for this would mean an error is displayed and VimDebug.vim should not show that a breakpoint was set (no >> in the margin).
Priority
I suppose there isn't tons of code out there that loads libraries dynamically but Catalyst is an important use case where that does happen.
Larger issues
Not being able to set breakpoints for libraries that haven't yet loaded is also a problem more generally for VimDebug usability. We may have to depend on users editing their code and inserting this line of code:
$DB::single=1;
This causes the Perl Debugger to enter "single step mode" when this command is encountered and it has no effect when Perl is run without the -d flag.
I suppose one solution to this may be to have the b command insert '$DB::single=1'. Obviously this is not gonna work for other debuggers. I don't yet know how this issue is handled by ruby or python.
The problem
You can't set a breakpoint in Perl unless the file has been loaded by the debugger. If you're code dynamically loads libraries, and you try to set a breakpoint in a library that hasn't been loaded yet, VimDebug.vim makes it appear that you successfully set the breakpoint. However, when you do a 'continue', the debugger will not stop at the breakpoint.
The fix
A fix for this would mean an error is displayed and VimDebug.vim should not show that a breakpoint was set (no >> in the margin).
Priority
I suppose there isn't tons of code out there that loads libraries dynamically but Catalyst is an important use case where that does happen.
Larger issues
Not being able to set breakpoints for libraries that haven't yet loaded is also a problem more generally for VimDebug usability. We may have to depend on users editing their code and inserting this line of code:
$DB::single=1;
This causes the Perl Debugger to enter "single step mode" when this command is encountered and it has no effect when Perl is run without the -d flag.
I suppose one solution to this may be to have the b command insert '$DB::single=1'. Obviously this is not gonna work for other debuggers. I don't yet know how this issue is handled by ruby or python.