Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New step implementation #71

Open
ncannasse opened this issue Feb 16, 2020 · 1 comment
Open

New step implementation #71

ncannasse opened this issue Feb 16, 2020 · 1 comment

Comments

@ncannasse
Copy link
Member

ncannasse commented Feb 16, 2020

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.

@yuxiaomao
Copy link
Collaborator

yuxiaomao commented Jul 4, 2024

Step to catch handler implemented in: 3e37095...43ba64a

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants