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

UI support for TimeTravel Debugging #7652

Closed
isidorn opened this issue Jun 14, 2016 · 21 comments · Fixed by #7734
Closed

UI support for TimeTravel Debugging #7652

isidorn opened this issue Jun 14, 2016 · 21 comments · Fixed by #7734
Assignees
Labels
debug Debug viewlet, configurations, breakpoints, adapter issues feature-request Request for new features or functionality verified Verification succeeded
Milestone

Comments

@isidorn
Copy link
Contributor

isidorn commented Jun 14, 2016

microsoft/vscode-node-debug#72

@isidorn isidorn added feature-request Request for new features or functionality debug Debug viewlet, configurations, breakpoints, adapter issues labels Jun 14, 2016
@isidorn isidorn added this to the June 2016 milestone Jun 14, 2016
@isidorn isidorn self-assigned this Jun 14, 2016
@isidorn
Copy link
Contributor Author

isidorn commented Jun 14, 2016

@roblourens I like how you implemented this in the prototpye. Would you like to create a PR with your changes + plus a small adition that you only instantitate that aciton if stepBack is supported

And the label needs to be nls.localized.
And it also needs to be registered as a global workbench action.

@roblourens
Copy link
Member

Sure, I can do that

@weinand
Copy link
Contributor

weinand commented Jun 14, 2016

@roblourens I've added the 'step back' request and the capability to the debug protocol. It is already available in the latest VS Code.
The mock-debug extension (available on the marketplace) implements step back and can be used to verify the UI.

@roblourens
Copy link
Member

plus a small adition that you only instantitate that aciton if stepBack is supported
@isidorn you're talking about DebugActionsWidget.getActions? I could instantiate it the first time a session starts that supports stepBack, and on subsequent calls, either include it or not in the array that's returned? Or, it is possible to just hide a debug action with a css class if it's not supported?

@isidorn
Copy link
Contributor Author

isidorn commented Jun 15, 2016

The actions get instantiated every time the widget gets created, so just instantiate it or not every time based on the capability.
No need to hide imho

@roblourens
Copy link
Member

If I understand correctly, it looks like the widget is created once for the lifetime of the Code instance, and the actions are created once and cached and reused for every debug session.

isidorn added a commit that referenced this issue Jun 16, 2016
UI support for TimeTravel Debugging

fixes #7652
@weinand weinand added the verified Verification succeeded label Jun 16, 2016
@weinand
Copy link
Contributor

weinand commented Jun 16, 2016

@roblourens @isidorn works great, thanks!

@aruneshchandra the TimeTravel UI is available in the next VS Code Insider build.

@aruneshchandra
Copy link
Member

@weinand @isidorn @roblourens Thanx for a quick turnaround on this feature request!

@isidorn
Copy link
Contributor Author

isidorn commented Jun 17, 2016

@aruneshchandra welcome. Is the chakra debug adapter extension published - I could not find it? Is there some way we can try this out - since we woudl ike to add it to our test plan.

@aruneshchandra
Copy link
Member

@agarwal-sandeep can tell you more about this.

cc:@curtisman

@agarwal-sandeep
Copy link

@isidorn Node-ChakraCore is supposed to work with vscode-node-debug adapter as Node-ChakraCore will support the debugging protocol without extensibility.

@roblourens had added a 'back' stepaction to 'continue' command in the vscode-node-debug adapter prototype. roblourens/vscode-node-debug@fdc0ea2 that change needs to be in adapter if UI says stepback.

@aruneshchandra
Copy link
Member

@agarwal-sandeep are you saying that the current VSCode implementation for stepBack functionality is not complete ?

@agarwal-sandeep
Copy link

node.exe (Chakracore) needs to know that step back is requested and it is not in debugging protocol so adapter needs to send a different action in continue command and I don't see it in https://github.com/Microsoft/vscode-node-debug/blob/master/src/node/nodeDebug.ts

@roblourens @weinand how will adapter notify the process?

@weinand
Copy link
Contributor

weinand commented Jun 17, 2016

@agarwal-sandeep we have implemented the UI as requested in microsoft/vscode-node-debug#72. Currently the UI can be controlled by a capability returned from the debug adapter. Our assumption was that Chakra would have its own debug adapter and that would enable the capability and implement a 'step back' request. microsoft/vscode-node-debug#72 did not mention that we have to implement the 'step back' request in vscode-node-debug.

Please create another feature request for vscode-node-debug so that we can enable the capability and implement the 'step back'. For the latter we need to know what the value for the stepactionof the continue request is.

I see one problem with this feature request: the debug-adapter has to return the 'step-back' capability from the 'initialise' request. But there we do not know whether the used node version supports 'step back' or not. This information is only available when the runtime is launched. But this is too late for returning the capabilities. We can address this sequence problem is the future, but for this release we have to find another way to determine early that chakra is used and supports 'step back'.

@agarwal-sandeep
Copy link

Thanks @weinand, I have open issue microsoft/vscode-node-debug#77.

For capability detection is it feasible to use some environment variable?

@weinand
Copy link
Contributor

weinand commented Jun 20, 2016

@agarwal-sandeep sure, node-debug could use an environment variable as an indicator that node.js is actually chakra.

Please suggest how the env var should be named.

Please note that this env var cannot be set in the launch config but must be set globally.
Let me know if this would work for you (until we've fixed the real issue).

@agarwal-sandeep
Copy link

@aruneshchandra @mrkmarron for their feedback. We can use NODE_DEBUG_SUPPORTS_STEPBACK=1

@aruneshchandra
Copy link
Member

@agarwal-sandeep how is this supposed to get set ? Is the user is expected to set this ?

@weinand
Copy link
Contributor

weinand commented Jun 21, 2016

@agarwal-sandeep yes, the user would have to do this (which would be a pain). We are currently looking into how to fix this issue.

@weinand
Copy link
Contributor

weinand commented Jun 21, 2016

@agarwal-sandeep we are planning to enhance VS Code so that the supportsStepBack capability can be returned from the launch and attach requests.

@aruneshchandra
Copy link
Member

@weinand yes that's much better than expecting users to set the env variable. Thanx!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
debug Debug viewlet, configurations, breakpoints, adapter issues feature-request Request for new features or functionality verified Verification succeeded
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants