microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.16k stars 28.54k forks source link

VSCode insiders debug console window broken after Mac OS upgrade #111259

Closed mpunak closed 3 years ago

mpunak commented 3 years ago

VSCode Version: 1.52.0-insider Commit: caf01baa45b9816e2e1d8a2de22b40cf89459c03 Date: 2020-11-20T07:35:38.417Z Electron: 9.3.3 Chrome: 83.0.4103.122 Node.js: 12.14.1 V8: 8.3.110.13-electron.0 OS: Darwin x64 20.1.0

Steps to Reproduce:

  1. Open any javascript or typescript project
  2. Launch program for debugging
  3. Set breakpoints and hit them
  4. Observe various issues with the debug pane
    • Text overlaying other text creating an unreadable garbled mess
    • Text entry of variable names for lookup of their current values not functioning

Log Window filled with the following thrown error/stack trace: [2020-11-24 14:17:54.764] [renderer5] [error] e.onDidChangeCount is not a function: TypeError: e.onDidChangeCount is not a function at e.renderElement (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:6092:227) at v.renderElement (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1090:682) at x.renderElement (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1058:411) at W.renderElement (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:597:673) at E.insertItemInDOM (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:568:539) at E._splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:564:591) at E.splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:563:201) at file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34:64 at Array.forEach () at t.CombinedSpliceable.splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34:51) at file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:603:688 at t.EventBufferer.bufferEvents (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:101:854) at O.splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:603:655) at O.splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1072:810) at t.IndexTreeModel.splice (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:107:746) at t.ObjectTreeModel._setChildren (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:115:339) at t.ObjectTreeModel.setChildren (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:115:211) at l.setChildren (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1087:165) at $.render (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1103:882) at $.refreshAndRenderNode (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1100:745) at async $._updateChildren (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1097:950) at async $.updateChildren (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1097:638) at async g.runner (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:7251:77)

Screen Shot 2020-11-24 at 2 16 40 PM

Does this issue occur when all extensions are disabled?: Yes

isidorn commented 3 years ago

e.onDidChangeCount is a duplicate of https://github.com/microsoft/vscode/issues/111191 which I plan to fix

The garbled mess is not triggered by that. I can not reproduce this and I am also on macOS BigSur but let's wait for me to fix the other issue and see if more users are hitting this

@mpunak do you have exact reproducable steps? Some minimal program that shows this?

Here's my example of a program that gerenates a lot of output and it works just fine

setInterval(() => {
    var count = Math.random() * 50;
    var message = Date.now() + 'new log message: ';
    for (var i = 0; i < count; i++) {
        message += ' ' + Math.random();
    } 
    console.log(message);
}, 200);
isidorn commented 3 years ago

Actually should be fixed now with latest out of source. Clsoing as dup of the linked issue. Thanks

mpunak commented 3 years ago

@isidorn I ran your simple test program in the debugger successfully.

My test scenario attaches to google chrome for debugging, which is still badly broken since the Mac OS upgrade. Nothing displays properly in the debug window and variables do not evaluate at breakpoints.

What details would you like from my Chrome debug setup? I tested with both: "debug.javascript.usePreview": false and "debug.javascript.usePreview": true

It was problematic in both instances. Do I need to file this bug under the extension dev? IF so can you provide a link?

isidorn commented 3 years ago

If you try with insiders that just came out 2 mintues ago it should work fine.

mpunak commented 3 years ago

Great job! Thanks.

isidorn commented 3 years ago

Thanks for letting us know.