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

[Debugger] Debug realms during transaction execution #2683

Open
leohhhn opened this issue Aug 13, 2024 · 2 comments
Open

[Debugger] Debug realms during transaction execution #2683

leohhhn opened this issue Aug 13, 2024 · 2 comments
Labels
⭐️ could have ⭐️ Optional work needed to complete a project 🤝 open for contributors 🤝 Work available to external contributors

Comments

@leohhhn
Copy link
Contributor

leohhhn commented Aug 13, 2024

Description

This is a proposal for an improvement on the GnoVM debugger. Currently the debugger is ran via gno run, meaning that it does not necessarily provide a way to debug functions during transaction calls.

I definitely see the benefit of being able to debug during a transaction; this way, you could set a breakpoint in a function, execute a transaction, and run through the program with the debugger.

This could also be a cool way to integrate the debugger with gnodev, making gnodev even more overpowered.

@mvertes, @gfanton, do you think something like this is feasible?

cc @gfant

@leohhhn leohhhn changed the title [GnoVM Debugger] Debug GnoVM during a transaction execution [GnoVM Debugger] Debug GnoVM during transaction execution Aug 13, 2024
@leohhhn leohhhn changed the title [GnoVM Debugger] Debug GnoVM during transaction execution [Debugger] Debug GnoVM during transaction execution Aug 13, 2024
@leohhhn leohhhn changed the title [Debugger] Debug GnoVM during transaction execution [Debugger] Debug realms during transaction execution Aug 13, 2024
@leohhhn
Copy link
Contributor Author

leohhhn commented Aug 13, 2024

After some internal discussions, a suggested flow could be the following:

  • Write gno code
  • Write function to debug
  • Add // debug or similar in-code thing to tell the machine that it should be debugged at that point
  • Run gnodev -debug, which will await a transaction, from anywhere, be it gnokey, or another wallet/interface
  • Stop the machine at // debug
  • Interact with debugger from within gnodev

Not sure if this is really feasible from the technical side; @gfanton & @mvertes can provide more details or other ways we could do this :)

@gfant
Copy link
Contributor

gfant commented Aug 13, 2024

I guess it could be better to add an end flag instead of the same, no? Like end-debug. Also this allows the idea of adding several blocks of debugging in the same run.

@zivkovicmilos zivkovicmilos added ⭐️ could have ⭐️ Optional work needed to complete a project 🤝 open for contributors 🤝 Work available to external contributors labels Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⭐️ could have ⭐️ Optional work needed to complete a project 🤝 open for contributors 🤝 Work available to external contributors
Projects
Status: Triage
Development

No branches or pull requests

3 participants