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

fix(gnovm/debugger): support breakpoints in loop bodies #2251

Merged
merged 1 commit into from
May 31, 2024

Conversation

mvertes
Copy link
Contributor

@mvertes mvertes commented May 31, 2024

A gnovm debugger breakpoint in a loop body was working only the first time, and was ignored the next times, letting 'continue' to skip over it.

This is fixed by updating the debugger previous code location state variable at each VM cycle, instead of just when used by 'step'.

This also corrects similar variants, like breakpoints working only once in recursive function calls.

Thank you @jaekwon for raising the issue and discussing the solution.

Contributors' checklist...
  • [*] Added new tests, or not needed, or not feasible
  • [*] Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory
  • [*] Updated the official documentation or not needed
  • [*] No breaking changes were made, or a BREAKING CHANGE: xxx message was included in the description
  • Added references to related issues and PRs
  • Provided any useful hints for running manual tests
  • Added new benchmarks to generated graphs, if any. More info here.

A breakpoint in a loop body was working only the first time, and was
ignored the next times, letting 'continue' to skip over it.

This is fixed by updating the debugger previous code location state
variable at each VM cycle, instead of just when used by 'step'.

This also corrects similar variants, like breakpoints working only once
in recursive function calls.

Thank you @jaekwon for raising the issue and discussing the solution.
@github-actions github-actions bot added the 📦 🤖 gnovm Issues or PRs gnovm related label May 31, 2024
@mvertes mvertes changed the title fix: a breakpoint in a loop body was working only once. fix(gnovm): a breakpoint in a loop body was working only once. May 31, 2024
@mvertes mvertes changed the title fix(gnovm): a breakpoint in a loop body was working only once. fix(gnovm): a breakpoint in a loop body was working only once. May 31, 2024
Copy link

codecov bot commented May 31, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 54.62%. Comparing base (055018a) to head (bf35dc5).
Report is 16 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2251      +/-   ##
==========================================
+ Coverage   49.93%   54.62%   +4.69%     
==========================================
  Files         576      577       +1     
  Lines       77827    78161     +334     
==========================================
+ Hits        38861    42696    +3835     
+ Misses      35840    32268    -3572     
- Partials     3126     3197      +71     
Flag Coverage Δ
gnovm 59.98% <100.00%> (+15.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@thehowl thehowl changed the title fix(gnovm): a breakpoint in a loop body was working only once. fix(gnovm/debugger): support breakpoints in loop bodies May 31, 2024
@thehowl thehowl merged commit ad71860 into gnolang:master May 31, 2024
48 of 51 checks passed
@mvertes mvertes deleted the debugger2 branch May 31, 2024 13:11
DIGIX666 pushed a commit to DIGIX666/gno that referenced this pull request Jun 2, 2024
A gnovm debugger breakpoint in a loop body was working only the first
time, and was ignored the next times, letting 'continue' to skip over
it.

This is fixed by updating the debugger previous code location state
variable at each VM cycle, instead of just when used by 'step'.

This also corrects similar variants, like breakpoints working only once
in recursive function calls.

Thank you @jaekwon for raising the issue and discussing the solution.

<!-- please provide a detailed description of the changes made in this
pull request. -->

<details><summary>Contributors' checklist...</summary>

- [*] Added new tests, or not needed, or not feasible
- [*] Provided an example (e.g. screenshot) to aid review or the PR is
self-explanatory
- [*] Updated the official documentation or not needed
- [*] No breaking changes were made, or a `BREAKING CHANGE: xxx` message
was included in the description
- [ ] Added references to related issues and PRs
- [ ] Provided any useful hints for running manual tests
- [ ] Added new benchmarks to [generated
graphs](https://gnoland.github.io/benchmarks), if any. More info
[here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).
</details>
omarsy pushed a commit to TERITORI/gno that referenced this pull request Jun 3, 2024
A gnovm debugger breakpoint in a loop body was working only the first
time, and was ignored the next times, letting 'continue' to skip over
it.

This is fixed by updating the debugger previous code location state
variable at each VM cycle, instead of just when used by 'step'.

This also corrects similar variants, like breakpoints working only once
in recursive function calls.

Thank you @jaekwon for raising the issue and discussing the solution.

<!-- please provide a detailed description of the changes made in this
pull request. -->

<details><summary>Contributors' checklist...</summary>

- [*] Added new tests, or not needed, or not feasible
- [*] Provided an example (e.g. screenshot) to aid review or the PR is
self-explanatory
- [*] Updated the official documentation or not needed
- [*] No breaking changes were made, or a `BREAKING CHANGE: xxx` message
was included in the description
- [ ] Added references to related issues and PRs
- [ ] Provided any useful hints for running manual tests
- [ ] Added new benchmarks to [generated
graphs](https://gnoland.github.io/benchmarks), if any. More info
[here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).
</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 🤖 gnovm Issues or PRs gnovm related
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants