Skip to content

Rust library for low-level interfacing with BYOND's virtual machine. Includes a remote debugger for the BYOND DreamMaker language.

License

Notifications You must be signed in to change notification settings

willox/auxtools

This branch is 2 commits ahead of, 3 commits behind master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f3b409f · Jan 23, 2025
Mar 14, 2024
Oct 13, 2024
Jan 10, 2025
Jan 10, 2025
Jan 10, 2025
Jan 10, 2025
Jan 10, 2025
Jan 23, 2025
May 18, 2023
Oct 8, 2020
May 18, 2023
Mar 14, 2024
Jan 23, 2025
Jan 23, 2025
May 18, 2023
Dec 22, 2024
May 18, 2023
May 18, 2023

Repository files navigation

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 pkg-config libssl-dev libssl-dev: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.

About

Rust library for low-level interfacing with BYOND's virtual machine. Includes a remote debugger for the BYOND DreamMaker language.

Topics

Resources

License

Stars

Watchers

Forks