eclipsesource / J2V8

Java Bindings for V8
2.55k stars 355 forks source link

Include Debugger to J2V8 project #414

Open AlexTrotsenko opened 6 years ago

AlexTrotsenko commented 6 years ago

I have created initial version of j2v8-debugger using Stetho for communication with Chrome DevTools as it was sugessted in #293.

Definitely current functionality is limited and there are some known issues. But in general, most important features are implemented: set/remove breakpoint, step in, step out, step over and ability to see local variables is implemented. Thus it could be already useful in debugging some complex JS issues.

This debugger could be included to J2V8 project if you find it appropriate. Otherwise it could be kept separately. What I am not sure is licensing - degugger uses Stetho from Facebook (for communication in Chrome DevTools protocol over web-socket). While j2v8 is licensed under Eclipse Public License v1.

liruidong183 commented 6 years ago

I have created initial version of j2v8-debugger using Stetho for communication with Chrome DevTools as it was sugessted in #293.

Definitely current functionality is limited and there are some known issues. But in general, most important features are implemented: set/remove breakpoint, step in, step out, step over and ability to see local variables is implemented. Thus it could be already useful in debugging some complex JS issues.

This debugger could be included to J2V8 project if you find it appropriate. Otherwise it could be kept separately. What I am not sure is licensing - degugger uses Stetho from Facebook (for communication in Chrome DevTools protocol over web-socket). While j2v8 is licensed under Eclipse Public License v1.

Thanks anyway. I'll integrate it with my project in the latest days.

artcodex commented 5 years ago

@AlexTrotsenko Thanks for debugging work, playing with this in some projects. I know the functionality there is still evolving, but @irbull would I be wrong in saying some of the support functionality on j2v8 is also not present to support certain scenarios like evaluate evaluateOnCallFrame used for watch variables? If it is maybe I am missing something.