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
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
.
These instructions were taken directly from tgstation's rust-g documentation.
The Rust compiler:
Install the Rust compiler's dependencies (primarily the system linker):
sudo apt-get install gcc-multilib
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
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.
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
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.