-
Notifications
You must be signed in to change notification settings - Fork 28.7k
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
Support inspecting large data structures on 4.x and 5.x versions of node.js #4951
Comments
The debugger for node is pretty much unusable right now. Will this be fixed any time soon? This is using node 4.4.2. VS Code 1.0. I don't see this related to large data structures, I see this when stepping any code, nothing in the watch window. |
@joewood could you please try to debug the same code with node-inspector? |
@joewood since you are the first who reports that node debug "is unusable in VS Code 1.0" it cannot be a wide spread issue. Could you please share some details about your problem so that we can investigate. Since this issue is a test plan item of a feature that will be available in the April release, it would be great if you could file a proper bug against the 1.0 release. |
@joewood thanks for your investigation. |
I tested with 5'000'000 items in an array on node v4.4.3 and node v5.9.1. It works beautifully. Even expanding the array in the variables view worked without issues (and nice progress icon). |
I think arrays are fine, did you try an object? |
@joewood @kieferrm this feature is not about objects with many properties. Objects with many properties will be addressed in microsoft/vscode-node-debug#18. |
@weinand thanks for clarifying. |
test item for microsoft/vscode-node-debug#11:
Inspecting large data structures results in slowness (unresponsiveness) issues in node.js because the v8 debugger protocol does not provide a way to access large data structures in chunks. Always the full thing travels over the wire. A particular nasty issue is that local variables are included in the stack frame object "for free" even if nobody requested them. A consequence is that stepping through code with large arrays or buffers in local variables or parameters results in slowness and timeouts.
In node 0.12.x VS Code started to dynamically inject code into the node runtime to improve the v8 debugging protocol but this stopped working after the io.js/node.js reunion for 2.x and 3.x versions. After fix nodejs/node#4328 code injection started to work again in node.js 4.3.1 in the LTS stream. For the 5.x stable stream the code injection has to use a slightly different approach that started to work in node 5.6.
Verify for node.js >= 4.3.1 and node.js >= 5.6 that:
Please note: this feature is not about objects with many properties. Objects with many properties will be addressed in microsoft/vscode-node-debug#18.
The text was updated successfully, but these errors were encountered: