68

When debugging in vscode I'd like to make some "blackboxing" and do not enter into code I didn't write. How can I do this?

asked Nov 29, 2017 at 15:37
0

9 Answers 9

85

In your launch or attach debug task you can enter a

"skipfiles"

option which is

"An array of file or folder names, or path globs, to skip when debugging."

For example, from skipping node internals during debugging

"skipFiles": [
 "${workspaceFolder}/node_modules/**/*.js",
 "${workspaceFolder}/yourLibToSkip/**/*.js"
]

Also, there is a "magic reference" to the built-in core node modules you can use:

"skipFiles": [
 "<node_internals>/**/*.js"
]
Liam
30k28 gold badges142 silver badges206 bronze badges
answered Nov 30, 2017 at 5:22
Sign up to request clarification or add additional context in comments.

8 Comments

could you kindly provide some example, I still cannot prevent entering to different dependencies folders inside of "node_modules" folder (i.e. ./node_modules/react-dom/lib/...), when debugging . part of launch task is "skipFiles":"[./node_modules/**]"
@d2048 See my edits to the answer and the included link.
This doesn't work for flutter. Can you please show us the full example for flutter please? This looks like for javascript
That "magic reference" doesn't work. I've downloaded VSCode today, debugged a TypeScript project, and am still ending up in async_hooks.js.
Although "skipFiles":["<node_internals>/**"] works for debug sessions which are NOT attached, it doesn't seem to work in case of attaching a process.
|
17

I was confused on where to put the setting, so just in case, if you want to skip both node_modules deps and node_internals files, your .vscode/launch.json file should look something like this:

{
 "version": "0.2.0",
 "configurations": [
 {
 "name": "Debug Tests",
 "type": "node",
 "request": "launch",
 ...
 "skipFiles": ["<node_internals>/**", "${workspaceFolder}/node_modules/**/*.js"]
 }
 ]
}
answered May 6, 2021 at 21:11

3 Comments

This was the answer that worked for me debugging a ReactJS app using Chrome on Windows.
I was trying with lots of other answers to this question and none of them worked. Turns out my problem was that I had skipFiles as a sibling to configurations instead of as a child. This fixed it for me. Thanks!
thank you for showing me exactly where to place skipFiles in the file. The other refs don't explain this.
4

Only this worked for me.

"debug.javascript.terminalOptions": {
 "skipFiles": [
 "<node_internals>/**"
 ]
}
answered Sep 30, 2021 at 6:42

Comments

3

It depends on the language/debug-support extension. VS Code does not have a generalized way to do this. I don't know the reason why, and it could just be because nobody has the time to design and implement it, but I'd guess that a challenge is that languages and their surrounding implementations and tooling differ in the ways that they describe programs in source and object/binary formats, and in the ways that their backing debug tooling support skipping things in debugging.

answered Dec 8, 2023 at 21:13

3 Comments

Normally I'd vote to close such a question as lacking focus. But people on meta have gotten cross at me for doing that on well-established questions... Also, I have no idea what to do about stackoverflow.com/q/52980448/11107541, which seems to have been interpreted by the community just as broadly despite being about C#.
the issue on this question is that most users (including myself until recently) don't think of the question as broad -- VSCode is VSCode in our heads, and we don't really think of it as a framework into which languages plug in. I knew this intellectually, but it's not intuitive. So most users are likely to ask the question about VSCode generically. And so it needs a comprehensive answer like this one.
@srm my thoughts have changed since I wrote that comment. I wouldn't close this question as lacking focus today since I'm no longer so confident that there's some reason VS Code couldn't present a standard interface at least for extension developers to adhere to, and I agree with where you're coming from and think it's valid. by the way, if you think this is a useful answer, consider applying your ability to vote.
2

For Typescript built with Webpack, I had to put the exclusions in launch.json - putting them in settings.json/terminalOptions had no effect.

Also, I had to exclude the pattern of the generated files, not the source files. In my case it looks like:

"skipFiles": [
 "<node_internals>/**",
 "**/vendors-*",
],
answered Feb 16, 2023 at 15:46

Comments

1

For some reason, I've needed to add both types of skip file entries,

 "skipFiles": [
 "${workspaceFolder}/node_modules/**/*.js",
 "<node_internals>/**"
 ],

This seems to have resolved the issue.

answered Mar 13, 2022 at 22:24

Comments

1

For flutter apps, add to your user settings the following:

"debugExternalPackageLibraries": false,
"dart.debugSdkLibraries": false,
answered Sep 11, 2021 at 14:59

Comments

0

this is my launch.json file (it works for me):

{
 "version": "0.2.0",
 "configurations": [
 {
 "type": "edge",
 "request": "launch",
 "name": "Launch Edge against localhost",
 "url": "http://localhost:4200",
 "webRoot": "${workspaceFolder}",
 "skipFiles": [
 "${workspaceFolder}/node_modules/**/*.js"
 ]
 }
 ]
}
HK boy
1,40411 gold badges21 silver badges27 bronze badges
answered Jul 16, 2020 at 15:44

Comments

0

Just to amplify on Mauro Aguilar's correct answer, here are the complete contents of my launch.json file. Note that I am debugging a ReactJS app (circa 2021) with VS Code 1.60.2 on Windows 10 using Chrome v.94. If you're using a Linux machine or a Mac, YMMV.

{
 // Use IntelliSense to learn about possible attributes.
 // Hover to view descriptions of existing attributes.
 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
 {
 "type": "pwa-chrome",
 "request": "launch",
 "name": "Launch Chrome against localhost",
 "url": "http://localhost:3000",
 "webRoot": "${workspaceFolder}",
 "skipFiles": ["<node_internals>/**/*.js", "${workspaceFolder}/node_modules/**/*.js"]
 },
 ]
}
Dharman
33.9k27 gold badges103 silver badges156 bronze badges
answered Oct 6, 2021 at 16:19

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.