Since this is a custom debugger written from scratch, it's a tricky task, but i'll do my best
For now i can say that GLOBAL_PHASE seems not to be an issue here.
Small explanation of what i'm trying to do:
- We have an IDE with some Perl project. Breakpoints set in several files using IDE.
- On start of debugging session, IDE sends all breakpoints to the debugger.
- On each invocation of DB::sub/DB::postponed debugger checks list of already loaded files and attempts to set queued breakpoins. On success it informs IDE about it.
- On each invocation of DB::DB debugger goes to interactive mode and awaits commands from IDE. Breakpoints may be set here in interactive mode.
Everything works as intended in Strawberry 5.22.2, but in Ubuntu 5.18.2 breakpoints set in step 3 are ignored. But, if file already been loaded, you've step in and you set a breakpoint in interactive mode, they works fine.
It looks like breakpoint works only if its been set from DB::DB invoked from breakpoint's target file. But sounds too stupid.
|