Tads3 stand-alone debugger

There was some hint of a stand-alone debugger for tads3 being developed a couple of years ago. I don’t know if it’s still being worked on so I would like to do my own try at this some time (if it doesn’t prove itself too complicated).

I need to get the basics though. How would one actually hook into the vm? I’ve seen the commit for making frobd builds possible and I’ve successfully compiled it but I don’t quite get the communication bit. If I were to do this, would I need to implement an interface somewhere inside the source code for frobtads or does the t3vm create a server host like in the way the Java vm does (that can be connected to via a port) or is some socket communication expected with the external debugger?

if possible it would be great if someone had a rough TODO list of what’s actually is needed to communicate back and forth with the vm, using what protocol etc. Figuring out implementing the actual methods in the debugger I think I can manage since there’s lot of general information on this already out there already.

Anything at all that could get me started would be greatly appreciated.

3 Likes

hi Tomas, I see you already read the thread where dddddd posted about their Python debugger. Unfortunately that’s as much information as I’ve found too and I’ve looked several times now the past couple of years, even just browsing/searching github for any repos.

One idea I had some time back but didn’t pursue was the possibility of implementing the language server protocol for T3, which I think could really help with non-Workbench tooling, or maybe even a code reloading tool for live game development. To be honest I’m not sure what is technically possible but from my reading of the technical manual it seems like the pieces might be there.

Yes, it would have been great if python debugger project was publicly available somewhere. But I’ll guess my main option is to keep studying the source code.

I’ve down the road of trying to implement a LSP for Tads3 myself. I got pretty far but the complex macros of tads3 has so far kept me from succeeding. In the end I needed to take a long break from it and do some more projects I was able to succeed with. I plan to get back but having a debugger is of more value to me at least and I think it’s one big obstacle keeping people from using t3 in a non-windows environment.

Actually, I think I found out how to go ahead with the debugger implementation by looking at the the implementation of the CVmDebugUI class in the source code for HTML-tads. So this question isn’t as relevant as before.