-
Notifications
You must be signed in to change notification settings - Fork 375
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
feat: add an interactive debugger to GnoVM #1563
Commits on Jan 19, 2024
-
feat: and an interactive debugger to GnoVM
We provide here an embedded interactive debugger to let the user control and inspect its program at symbolic level, with the same features and commands as classical debuggers: gdb, lldb or delve. The debugger is enabled by setting the `-debug` flag in `gno run` command, which loads the target program and immediately shows a debugger prompt on the console: $ gno run -debug /tmp/my-program.gno Welcome to the Gnovm debugger. Type 'help' for list of commands. dbg> Providing `-debug-addr` flag allows to start a remote debugging session, and not interfer with the program stdin and stdout. For example, in a first terminal: $ gno run -debug-addr :4000 /tmp/my-program.gno Waiting for debugger client to connect at :4000 And in a second terminal, using a netcat like nc(1): $ nc localhost 4000 Welcome to the Gnovm debugger. Type 'help' for list of commands. dbg> The debugger works by intercepting each execution step at virtual machine level (each iteration within `Machine.Run` loop) to a callback, which in turns can provide a debugger command REPL or check if the execution can proceed to the next step, etc. This change request is still work-in-progress, as many debugger commands are not ready yet. Nevertheless, the general logic and structure is there. It is possible to `continue`, `stepi`, `detach`, etc and get a general feedback of the user experience and the impact on the code. Efforts are made to make this feature minimally intrusive in the actual VM, and not interfering when the debugger is not used. It is planned shortly after this PR is integrated to add the capacity to attach to an already running program, and to taylor the data format for existing debugging environments such as VScode, etc, as demand arises.
Configuration menu - View commit details
-
Copy full SHA for 21832ab - Browse repository at this point
Copy the full SHA 21832abView commit details
Commits on Jan 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6d55061 - Browse repository at this point
Copy the full SHA 6d55061View commit details -
Configuration menu - View commit details
-
Copy full SHA for 103ae9a - Browse repository at this point
Copy the full SHA 103ae9aView commit details
Commits on Jan 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0cd9c23 - Browse repository at this point
Copy the full SHA 0cd9c23View commit details -
Configuration menu - View commit details
-
Copy full SHA for 80b17c4 - Browse repository at this point
Copy the full SHA 80b17c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8169086 - Browse repository at this point
Copy the full SHA 8169086View commit details
Commits on Jan 31, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f74fd61 - Browse repository at this point
Copy the full SHA f74fd61View commit details
Commits on Feb 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 55d89de - Browse repository at this point
Copy the full SHA 55d89deView commit details -
Configuration menu - View commit details
-
Copy full SHA for f5e13d7 - Browse repository at this point
Copy the full SHA f5e13d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 071b4be - Browse repository at this point
Copy the full SHA 071b4beView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a64081 - Browse repository at this point
Copy the full SHA 2a64081View commit details
Commits on Feb 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a7c3876 - Browse repository at this point
Copy the full SHA a7c3876View commit details
Commits on Feb 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c302790 - Browse repository at this point
Copy the full SHA c302790View commit details
Commits on Feb 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 66ace69 - Browse repository at this point
Copy the full SHA 66ace69View commit details
Commits on Feb 16, 2024
-
Implement a go expression parser for the 'print' command.
debugEvalExpr evaluates a Go expression in the context of the VM and returns the corresponding value, or an error. The supported expression syntax is a small subset of Go expressions: basic literals, identifiers, selectors, index expressions, or a combination of those are supported, but none of function calls, arithmetic, logic or assign operations, type assertions of convertions.
Configuration menu - View commit details
-
Copy full SHA for 3976c57 - Browse repository at this point
Copy the full SHA 3976c57View commit details
Commits on Feb 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0ac45cb - Browse repository at this point
Copy the full SHA 0ac45cbView commit details
Commits on Mar 28, 2024
-
simplify debug command names sorting
Co-authored-by: Morgan <git@howl.moe>
Configuration menu - View commit details
-
Copy full SHA for 7455761 - Browse repository at this point
Copy the full SHA 7455761View commit details -
Revert "simplify debug command names sorting"
This reverts commit 7455761.
Configuration menu - View commit details
-
Copy full SHA for 49149cc - Browse repository at this point
Copy the full SHA 49149ccView commit details
Commits on Apr 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 11f51de - Browse repository at this point
Copy the full SHA 11f51deView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fd850c - Browse repository at this point
Copy the full SHA 9fd850cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d4cda36 - Browse repository at this point
Copy the full SHA d4cda36View commit details -
Configuration menu - View commit details
-
Copy full SHA for c7e14a6 - Browse repository at this point
Copy the full SHA c7e14a6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 860d8bc - Browse repository at this point
Copy the full SHA 860d8bcView commit details
Commits on Apr 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 7fe0fec - Browse repository at this point
Copy the full SHA 7fe0fecView commit details -
Configuration menu - View commit details
-
Copy full SHA for a8edb0a - Browse repository at this point
Copy the full SHA a8edb0aView commit details
Commits on Apr 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 79096ba - Browse repository at this point
Copy the full SHA 79096baView commit details
Commits on Apr 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e4ebcc7 - Browse repository at this point
Copy the full SHA e4ebcc7View commit details
Commits on Apr 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 445c565 - Browse repository at this point
Copy the full SHA 445c565View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26dd6a3 - Browse repository at this point
Copy the full SHA 26dd6a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for a69a496 - Browse repository at this point
Copy the full SHA a69a496View commit details
Commits on Apr 25, 2024
-
fix list and break commands when source file is not set
Fix also list for sources comming from memory packages.
Configuration menu - View commit details
-
Copy full SHA for 3b19e1a - Browse repository at this point
Copy the full SHA 3b19e1aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e573bb4 - Browse repository at this point
Copy the full SHA e573bb4View commit details
Commits on Apr 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for dfb202e - Browse repository at this point
Copy the full SHA dfb202eView commit details
Commits on May 6, 2024
-
fix: don not panic in case of error of remote debugger connection
The connection is now initiated of the debugger state machine, so the error can be processed from the start. It also allows slight simplifcations.
Configuration menu - View commit details
-
Copy full SHA for 98d9b1f - Browse repository at this point
Copy the full SHA 98d9b1fView commit details
Commits on May 10, 2024
-
fix: lookup values in if body. Do not panic if debug expr error.
Also improve test coverage (now > 96% for debugger.go).
Configuration menu - View commit details
-
Copy full SHA for 3fad6b9 - Browse repository at this point
Copy the full SHA 3fad6b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for a6700bf - Browse repository at this point
Copy the full SHA a6700bfView commit details
Commits on May 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 1d4bc06 - Browse repository at this point
Copy the full SHA 1d4bc06View commit details -
Configuration menu - View commit details
-
Copy full SHA for a7a2602 - Browse repository at this point
Copy the full SHA a7a2602View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50c3edf - Browse repository at this point
Copy the full SHA 50c3edfView commit details
Commits on May 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9557a26 - Browse repository at this point
Copy the full SHA 9557a26View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc77bed - Browse repository at this point
Copy the full SHA dc77bedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c52ee6 - Browse repository at this point
Copy the full SHA 1c52ee6View commit details