Giter Club home page Giter Club logo

auxtools's Introduction

auxtools

auxtools is a Rust-based successor to the extools project.

Currently, it implements some of the features such as the debug server, but is planned to supplant most functionality (maptick, etc.).

Code Documentation: https://auxtools.willox.dev

Features

Code Coverage - A tool to generate cobertura code coverage XML reports for a codebase. Note that, due to a BYOND issue it requires some additional work to have properly un-mangled file names in the report.

Debug Server - Working with SpaceManiac's SpacemanDMM, Auxtools interfaces with the debugger frontend to provide debugger information and management of breakpoints.

Dissassembly - When currently stopped at a breakpoint, enter the #dis command into the Debug Console in VSC to see the DM bytecode for the current proc. You can also provide it any arbitrary proc path like #dis /mob/proc/Life.

Dependencies

These instructions were taken directly from tgstation's rust-g documentation.

The Rust compiler:

  1. Install the Rust compiler's dependencies (primarily the system linker):

  2. Use the Rust installer, or another Rust installation method, or run the following:

    curl https://sh.rustup.rs -sSfo rustup-init.sh
    chmod +x rustup-init.sh
    ./rustup-init.sh
  3. Add the 32-bit compilation target:

    # Clone the `auxtools` repository to a directory of your choice
    git clone https://github.com/willox/auxtools
    # in the `auxtools` directory...
    cd auxtools
    # Linux
    rustup target add i686-unknown-linux-gnu
    # Windows
    rustup target add i686-pc-windows-msvc

System libraries:

  • Ubuntu and Debian users run:

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install build-essential g++-multilib libc6-i386 libstdc++6:i386
  • Other Linux distributions install the appropriate 32-bit development and 32-bit runtime packages.

Compiling

The Cargo tool handles compilation, as well as automatically downloading and compiling all Rust dependencies. To compile in release mode (recommended for speed):

Linux:

export PKG_CONFIG_ALLOW_CROSS=1
cargo build --release --target i686-unknown-linux-gnu
# output: target/i686-unknown-linux-gnu/release/libauxtools.so

Windows:

cargo build --release --target i686-pc-windows-msvc
# output: target/i686-pc-windows-msvc/release/auxtools.dll,debug_server.dll,auxcov.dll

License

Auxtools is licensed under the MIT license. See LICENSE for more details.

The Auxtool Debug Server (located @ ./debug_server) and Auxcov Code Coverage tool (located @ ./auxcov) is licensed under the GPL 3.0 license. See debug_server/LICENSE or auxcov/LICENSE for more details.

auxtools's People

Contributors

willox avatar 1fbff5f83b23d39d38b1dfcb4cac8d9b avatar cyberboss avatar zewaka avatar y0sh1m4s73r avatar spacemaniac avatar mchsl avatar mothblocks avatar jupyterkat avatar putnam3145 avatar jamied1 avatar tigercat2000 avatar williamvenner 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.