{"action":"closed","issue":{"url":"https://api.github.com/repos/Microsoft/vscode/issues/7507","repository_url":"https://api.github.com/repos/Microsoft/vscode","labels_url":"https://api.github.com/repos/Microsoft/vscode/issues/7507/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vscode/issues/7507/comments","events_url":"https://api.github.com/repos/Microsoft/vscode/issues/7507/events","html_url":"https://github.com/Microsoft/vscode/issues/7507","id":159531192,"number":7507,"title":"support for long / asynchronous call stacks in Node.js debugger","user":{"login":"jokeyrhyme","id":479816,"avatar_url":"https://avatars.githubusercontent.com/u/479816?v=3","gravatar_id":"","url":"https://api.github.com/users/jokeyrhyme","html_url":"https://github.com/jokeyrhyme","followers_url":"https://api.github.com/users/jokeyrhyme/followers","following_url":"https://api.github.com/users/jokeyrhyme/following{/other_user}","gists_url":"https://api.github.com/users/jokeyrhyme/gists{/gist_id}","starred_url":"https://api.github.com/users/jokeyrhyme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jokeyrhyme/subscriptions","organizations_url":"https://api.github.com/users/jokeyrhyme/orgs","repos_url":"https://api.github.com/users/jokeyrhyme/repos","events_url":"https://api.github.com/users/jokeyrhyme/events{/privacy}","received_events_url":"https://api.github.com/users/jokeyrhyme/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"weinand","id":1898161,"avatar_url":"https://avatars.githubusercontent.com/u/1898161?v=3","gravatar_id":"","url":"https://api.github.com/users/weinand","html_url":"https://github.com/weinand","followers_url":"https://api.github.com/users/weinand/followers","following_url":"https://api.github.com/users/weinand/following{/other_user}","gists_url":"https://api.github.com/users/weinand/gists{/gist_id}","starred_url":"https://api.github.com/users/weinand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weinand/subscriptions","organizations_url":"https://api.github.com/users/weinand/orgs","repos_url":"https://api.github.com/users/weinand/repos","events_url":"https://api.github.com/users/weinand/events{/privacy}","received_events_url":"https://api.github.com/users/weinand/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2016-06-09T23:31:26Z","updated_at":"2016-06-13T08:29:49Z","closed_at":"2016-06-13T08:29:49Z","body":"- VSCode Version: `code --version` -> 1.3.0-insider\r\n- OS Version: OS X 10.11.6 Beta (15G12a)\r\n\r\nSteps to Reproduce:\r\n\r\n1. start with this code\r\n\r\n    ```js\r\n    setTimeout(() => {\r\n      Promise.resolve()\r\n        .then(() => {\r\n          throw new Error('catch me!')\r\n        })  \r\n    })\r\n    ```\r\n\r\n2. set a breakpoint on the `throw`, and debug in VSCode (as a Node.js project)\r\n\r\n    ![screen shot 2016-06-10 at 09 19 15](https://cloud.githubusercontent.com/assets/479816/15949712/e93ec410-2eec-11e6-9225-e2ed32b36732.png)\r\n\r\n    - observe that the Call Stack lists just a single frame.\r\n\r\n3. debug this in Chrome, with DevTools, with \"Async\" checked (near the Call Stack and Breakpoints lists)\r\n\r\n    ![screen shot 2016-06-10 at 09 19 05](https://cloud.githubusercontent.com/assets/479816/15949755/3bf4c98e-2eed-11e6-8924-faa2339c6f0a.png)\r\n\r\n    - observe that the Call Stack lists multiple asynchronous frames\r\n\r\n\r\nWhilst researching this, I did come across a similar feature request for node-inspector:\r\n\r\n- https://github.com/node-inspector/node-inspector/issues/340\r\n\r\nBeing able to easily trace the asynchronous flow leading up to an exception (or a breakpoint) is an incredibly powerful tool in the JavaScript developer's arsenal.\r\n\r\nIt is interesting to note that this is not on by default in Chrome DevTools. Perhaps having this on all the time has considerable performance ramifications? I've had \"Async\" checked ever since it was announced, but I can imagine a release that turns this on by default could be met with developer confusion / frustration.\r\n\r\nWould following Chrome's lead here and just providing a checkbox (or a flag in the debug configuration JSON) be the best initial approach?"}}
{"actor":{"display_login":"weinand"}}