Giter Site home page Giter Site logo

willox / auxtools Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 31.0 1.92 MB

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

License: MIT License

Rust 92.57% C++ 4.86% Assembly 1.23% DM 0.75% Nix 0.59%
hacktoberfest rust

auxtools's People

Contributors

1fbff5f83b23d39d38b1dfcb4cac8d9b avatar absolucy avatar cyberboss avatar itsmeow avatar jamied1 avatar jupyterkat avatar mchsl avatar mothblocks avatar putnam3145 avatar spacemaniac avatar tigercat2000 avatar vvvv-vvvv avatar williamvenner avatar willox avatar y0sh1m4s73r avatar zewaka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

auxtools's Issues

Feature Request: Alphabetize variables in the debugger

It's quite annoying searching for variables currently, having to scroll through potentially hundreds of variables to find the one you're looking for.
It looks like it's currently grouped by inheritance from the type, but that doesn't really help when you're debugging mob/carbon/human or something and trying to find a mob/-scope var.
Even then, it's not even alphabetized within the type scope:
Code_2020-12-19_10-39-01

Windows Signatures for 515.1602

I am bad at Rust, and do not feel like fiddling with this enough to implement it properly.

Here are Windows signatures for 515.1602.

call_proc_by_id 55 8B EC 81 EC 98 00 00 00 A1 ?? ?? ?? ?? 33 C5 89 45 FC 8B 55
get_variable 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 0C 53 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 4D
call_datum_proc_by_name 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 18 53 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 75 14 8D 45 F3 8B 5D 10 6A 01
get_assoc_element 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 10 53 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 4D
set_assoc_element 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 14 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 4D
to_string_byond 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 3C 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 75
set_variable_byond 55 8B EC 6A FF 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 83 EC 08 56 57 A1 ?? ?? ?? ?? 33 C5 50 8D 45 F4 64 A3 00 00 00 00 8B 4D

call_proc_by_id is not a with_scanner_by_call signature anymore, I couldn't get one to generate, so if someone else wants to make a new one or you can just change what it uses for 1602.

Cannot debug procs using /database/query

/proc/enable_debugging(mode, port)
	CRASH("auxtools not loaded")

/proc/auxtools_stack_trace(msg)
	CRASH(msg)

var/early_init/early_init = new
/early_init/New()
	init_debugger()

/proc/init_debugger()
	var/auxtools_path = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")

	if(fexists(auxtools_path))
		call(auxtools_path, "auxtools_init")()
		enable_debugging()

/client/verb/stuff()
	..()

	var/database/db = new("mydb.db")
	var/database/query/q = new("SELECT * FROM my_table WHERE name=?", "test")

	if(q.Execute(db) && q.NextRow())
		return q.GetRowData()

Put this in a new project, enable BYOND's debugging, place a breakpoint on the line with var/database/query/q.
Attempting to step through it will result in the process hanging. This is in the output console:

Debug Server: "Pausing execution (reason: Breakpoint)"
Debug Server: "Pausing execution (reason: Step)"
[main] Error responding to "variables": timed out waiting for response
Debug client disconnected
Debug server thread finished
[main] Error responding to "stepIn": timed out waiting for response
[main] Error responding to "continue": timed out waiting for response

Feature Request: Reference tracking

Extools had an ability to get forwards and backward references to an object, for debugging hard Dels.

It would be wonderful if auxtools had this same functionality.

1616 sigs don't work

On Windows:

Welcome BYOND! (5.0 Beta Version 515.1616)
auxtools_init: FAILED (FAILED (Couldn't find execute_instruction))

tests fail on 514.1560

(only checked on windows)

This is a worry for later :)

versions that do succeed:

513.1537
513.1542
514.1586
514.1589

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.