Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/hone-labs/teal-debugger-extension

A TEAL debugger extension for VS Code.
https://github.com/hone-labs/teal-debugger-extension

Last synced: 3 months ago
JSON representation

A TEAL debugger extension for VS Code.

Lists

README

        

# teal-debugger-extension

This is TEAL debugger extension for VS Code with support up to and including TEAL 5. Support for TEAL 6 is coming in the future.

It allows you to run TEAL code directly on a simulated AVM (Algorand virtual machine) without having to do any setup or configuration

To run TEAL code on a real AVM you need to setup an Algorand block chain node (which is complicated and takes time). Then you have to jump through hoops to run, test and debug your code. This TEAL debugger extension allows you to test and debug your code without any of that complexity.

## Install the debugger

Install this extension from the VS Code marketplace.

Or install the latest version manually, downloaded from [the releases page](https://github.com/optio-labs/teal-debugger-extension/releases).

## Using the debugger

With the debugger installed, open a TEAL file.

Debug it like you would any other type of code:
- F5 to start debugging.
- F10 to single step lines of code.
- View the debug pane to see the compute stack and variables.

See [the VS Code Debugging guide](https://code.visualstudio.com/docs/editor/debugging) for help on using the debugger UI.

## Configuring the debugger

Running TEAL code often requires a lot of *environmental context* (hereafter referred to as **the context**), things like:
- The current transaction or transaction group
- Global and local state
- Details about the block chain account

This TEAL debugger requires no initial configuration, you can simply start debugging and it asks you to choose from the following options:
- Choose a new existing configuration file (if you have one)
- Create a new configuration from a default (if you have some defaults)
- Proceed with no configuration.

The first time you use the TEAL debugger the easiest way is to *proceed with no configuration*. The debugger runs in *automatic configuration* mode: when it needs to load a value from the context, and the value doesn't yet exist, it prompts you for input. The inputs you provide are stored in the context. When the context is updated you then are prompted to save a configuration file. This is the easiest way to generate a new configuration file.

The saved configuration is output into the `.teal-debugger` directory under the same directory as the TEAL file you are debugging. The name of the configuration file is automatically generated by adding `.json` to the name of the TEAL file. So if you are debugging `blah.teal` the first generated configuration will be named `.teal-debugger/blah.teal.json`. Please rename this file to give it a more meaningful name. Subsequent generated configuration files for the same TEAL file add numbers to the name, i.e. `.teal-debugger/blah.teal-1.json`, `.teal-debugger/blah.teal-2.json` and so on.

You can copy existing configurations in the `.teal-debugger` directory, give them new names and tweak the values therein to create new configurations for the TEAL debugger.

To create default (or template) configurations copy existing configuration file to the `.teal-debugger` directory under your home directory (you must create this directory yourself). Be sure to give these files good names so that you'll remember their purpose later.

To learn more about what goes in a configuration file, please see [the configuration guide](https://github.com/optio-labs/teal-interpreter/blob/main/docs/configuration.md) for [the TEAL interpreter](https://github.com/optio-labs/teal-interpreter) (that this debugger is built on).

## Development

See [the development guide](docs/DEVELOPMENT.md) for instructions on development of this extension.