Skip to content
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

Open
devkaiwang opened this issue Mar 15, 2017 · 20 comments
Open

Debugger Support #425

devkaiwang opened this issue Mar 15, 2017 · 20 comments
Labels
enhancement New feature or refinement to existing one

Comments

@devkaiwang
Copy link
Contributor

Step over/in/out support, etc.

@munificent
Copy link
Member

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.

@munificent munificent added the enhancement New feature or refinement to existing one label Apr 8, 2017
@Geequlim
Copy link

Any progress with debugger?

@ruby0x1
Copy link
Member

ruby0x1 commented Jan 12, 2018

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.

@Geequlim
Copy link

Good news!

@fy0
Copy link

fy0 commented Jan 23, 2018

@underscorediscovery Great! I can't wait for this!

@devkaiwang
Copy link
Contributor Author

How is this feature going? Any updates?

@ruby0x1
Copy link
Member

ruby0x1 commented Jun 14, 2018

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.)

@RallyTronics
Copy link
Contributor

Is this still a thing? What's the debugger status?

@ruby0x1
Copy link
Member

ruby0x1 commented Aug 21, 2019

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.

@RallyTronics
Copy link
Contributor

Great news! I appreciate the ongoing efforts on this.

@mitack
Copy link

mitack commented Jul 15, 2020

Do I get this right that the debugger would be VS Code based/tied ?

@ruby0x1
Copy link
Member

ruby0x1 commented Jul 15, 2020

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.

@ruby0x1
Copy link
Member

ruby0x1 commented Jul 21, 2020

Just an update on where this is at since I've been working on it:

The biggest blocker on it is that it was/is tied to my codebase a bit

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.

@gkjpettet
Copy link

@ruby0x1 How is progress going on this? I'm considering writing a dedicated IDE for Wren but am hesitant to start without debugger support.

@yuppox
Copy link

yuppox commented Jan 9, 2021

+1 for this feature.

@Vinschni
Copy link

I would love to have the debugger @ruby0x1 :-)

@gkjpettet
Copy link

Just an update on where this is at since I've been working on it:

The biggest blocker on it is that it was/is tied to my codebase a bit

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 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?

@maks
Copy link

maks commented May 5, 2022

@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.

@ruby0x1
Copy link
Member

ruby0x1 commented Jun 6, 2022

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
experience in luxe, so thanks to them!

@mhermier
Copy link
Contributor

mhermier commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or refinement to existing one
Projects
None yet
Development

No branches or pull requests