GithubHelp home page GithubHelp logo

atdebugger's Introduction

ATDebugger

Requirement: Java 7+ JVM with javafx support. Some builds of openjdk7 do not have javafx support.

Compiling: A recent version of sbt(simple build tool) is needed. Edit the path to your jdk into the build.sbt file. Run sbt then type packageJavafx to compile.

Usage: Run the jar, and the block control window will show up. Click 'Add AT' to open AT windows. You can drag a text file containing AT assembly into the code table and it will load it.

ATs can be given balance either by setting the balance at the top of their windows, or by clicking 'Send tx' and making a transaction to them. All balances are represented as they are processed internally in burst (100000000 (10^8) = 1 coin). Step fees are 10^7(10000000) for normal opcodes, and 10^8(100000000) for api calls.

Breakpoints can be set by clicking in the bp column next to code lines.

Clicking 'Advance Block' in the block control window will cause ATs which are eligable to run to run.

While an AT is running, run will cause an AT to run until it hits it's next breakpoint. Step into will run exactly one opcode. Step over will run until it gets to a line which is shown in the code. Step into and over will usually do the same thing, however the code window shows your source, which may not perfectly match the assembled code, so if any line was expanded to multiple operations, step into will run them one at a time, but step over will execute them together.

When the AT is in progress, you can double click in the instruction pointer column to set the next statement. Variables can also be edited on the right side while the AT is in progress. The instuction pointer and variables cannot be edited in between blocks.

If you have multiple AT windows, they share they same pool of transactions, so they can send to each other.

Each AT window keeps a complete history of it's state each block, so you can use 'Undo Block' all the way back.

This uses completly different assembling code from the available ATAssembler and may assemble to different code. There are 2 known cases where it will assemble differently:

  1. Branch statements can jump a limited distance. ATAssembler issues a warning if you try to branch too far, but ATDebugger automatically fixes it by inverting the branch and adding a jmp.
  2. ATAssembler wastes a variable when setting error handlers. ATDebugger does not.

A new assembler that shares the assembling code with ATDebugger will be released to make it consistent.

atdebugger's People

Contributors

burstproject avatar

Watchers

James Cloos avatar Shadow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.