New step implementation
New step implementation allows to put pseudo-breakpoints at places of interest depending on the desired action, which is much more efficient than previous stepping that was executing and pausing each single cpu instruction.
However the following limitations are currently in place :
- exceptions : step when an exception is throw will handle it, whereas we would maybe like to step in the catch handler
- step in native : calls to native (C) functions are skip when doing step-in, as well as std library. As a result, a call to native calling back to Haxe cannot be step-in.
Waiting for feedback and reproducible cases to improve things further.
Step to catch handler implemented in: https://github.com/vshaxe/hashlink-debugger/compare/3e37095e260beba80965d5658b603de6c7429878...43ba64a14259a96f0266702c70789dc0b2d0841e
Additionnaly, when an error is thrown and we break in hl_throw C function, it's difficult to get catch handler's address: Rip exists in trap but we can only access to tinf->current_trap, which is trap->prev.
Restore trap to tinf->current_trap before hl_debugger_break is probably needed if we would like to handle this case.