-
Notifications
You must be signed in to change notification settings - Fork 564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debugger Support #425
Comments
Yes, this would be fantastic. It's a lot of work, obviously, but I think it's worth looking into. I'll have to do some thinking to see how to integrate it into the VM in a way that doesn't overwhelm it with complexity or harm performance in release builds. I have some ideas. |
Any progress with debugger? |
I'll be posting more info on debugging soon! We're working on getting it usable and cleaning it up for a PR. It's already usable and working well, but there are things like variable introspection and such that take a bit more effort. You can see the debugger in action here through vscode. |
Good news! |
@underscorediscovery Great! I can't wait for this! |
How is this feature going? Any updates? |
We're working on getting a PR up. (It's not trivial to merge upstream while Bob is occupied though, as it makes changes to the vm itself. A PR can at least be used by others in the mean time though.) |
Is this still a thing? What's the debugger status? |
It's definitely still a thing! I recently got it running on Windows, fixed several bugs and updated the visual studio code plugin to the latest versions. The biggest blocker on it is that it was/is tied to my codebase a bit, I'm busy working on making it run against master instead (It'll be in a branch initially as it has some important changes to review). Hopefully I'll have the branch up soon. |
Great news! I appreciate the ongoing efforts on this. |
Do I get this right that the debugger would be VS Code based/tied ? |
The debugger support is built into the vm and isn't tied to anything specific, but the vscode plugin exposes it and makes it usable from there. If you had another system that supports debugger integration it should be possible to make it work there too. |
Just an update on where this is at since I've been working on it:
I've been resolving this part here recently. My engine was running an older version of wren (for various reasons) which contributed to the disparity, blocking a PR. Pulling just the debugger parts out proved tricky considering the delta with the wren main branch and how much had changed. I've finally updated it to latest Wren, and I'm testing the debugger again while I continue to clean up the debugger integration. The less surface area the debugger touches, the easier to maintain and keep behind an experimental flag. This brings the PR for initial debugging support much closer. |
@ruby0x1 How is progress going on this? I'm considering writing a dedicated IDE for Wren but am hesitant to start without debugger support. |
+1 for this feature. |
I would love to have the debugger @ruby0x1 :-) |
@ruby0x1 Has there been any progress on this at all since July 2020? It seemed like you were close and the dev log from 2017 said there was a working debugger for Wren. I love Wren and use it as a scripting language in several apps I've written but I'm currently starting a new app that needs a scripting language but it really needs to support basic debugging. I don't want to have to use Lua or something else so I'm just wondering if there's any form of update at all? |
@ruby0x1 any chance you could publish the branch with your work on the debugger? as I couldn't find anything in your fork repo (https://github.com/ruby0x1/wren) Even not complete or fully working code would be very helpful for me as I'm doing research and trying to find good examples of how a debugger can be implemented in a interpreter bytecode vm as I would like to learn how to implement that functionality for another language and implementing debuggers is one thing that's not covered in Bob's book. |
Alright everyone step one is finally here: getting the code into the repo branches and untangled 🎉
This debugger works but has some places where it'll access a null, and has lots of needed work on things like displaying the contents of variables etc properly. Sometimes the locals can be miscalculated? It's a work in progress! The original implementation was done by @KeyMaster- (twitter) as a learning |
Took a quick pick at the implementation, and I don't like it as this. It
is, too much tight coupled to the host functions, seems to force network
debugging, and does not allow self hosted debugging.
|
Step over/in/out support, etc.
The text was updated successfully, but these errors were encountered: