I am trying to debug my Typescript code in Visual Studio Code, using the Chrome Debugger extension, but I am getting the \"Unverified breakpoint\" message on my breakpoint,
I also encountered the issue after renaming the project folder and it turned out the "webRoot" property was pointing to "${workspaceFolder}/src" instead of "${workspaceFolder}". Maybe this was snug in as part of an update for the "Debugger for Chrome" extension but since I did not receive any update I cannot verify this.
Updating "webRoot", restarting the ng serve
session and starting a new debug session did the trick. Hope this will help someone with a similar scenerio.
There are many correct answers given. In my case a combination of all those answers helped, and it took me a long time to figure it out. I hope I can save you some headache time with this, so
let me summarize it step by step with reference to the answers above what helped me:
cd
to the project folder.cd myProject
code .
.vscode
folder..vscode
folder is a subdirectory of your project folder.src
folder, then you will find a .vscode
folder there (as it was in my case), containing configuration files which are useless for debugging.Set up a debug configuration in the .vscode\launch.json
file.
Make sure that you have specified the right port for your application, in my case port 4200
was doing fine.
Also make sure that the "webRoot"
parameter is configured correctly (see answer from Stig Perez). In my case it was necessary to add a subfolder to it. To find that out what the path specified by the variable $(workspaceFolder)
is, check out the question I've asked at StackOverflow regarding how to display VS code variable values.
Note: If there is no such configuration yet, do the following to add it: Go to the debug extension (i.e. click on the side bar). In the dropdown of your debugger, select “Add Configuration...”, then press the blue “Add Configuration” button. Select “Launch Chrome” as configuration to be added.
Example configuration (launch.json
):
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/projectsubfolder"
}]
Replace projectsubfolder
by the subfolder you might have in your project. Note that this is case-sensitive (see answer from Michael Walsh).
Now set the breakpoints in your application.
To launch your application with debugger, open a terminal window inside VS code, type cd projectsubfolder
npm install & ng serve
This ensures the dependent packages are resolved and downloaded before your application is being compiled. Wait until the compilation is finished.
Then, click on the green triangle in the VS debugger which will launch a Chrome window with attached debugger.
Note: You don't need to run npm install
every time, just when packages/dependencies have changed. Most of the time, it is sufficient to execute ng serve
to re-compile and run your code.
Unverified breakpoint
I found 3 causes for this problem:
launch.json
configuration URL automatically generated was incorrect. Make sure the port number matches the localhost port on which your web app runs. I changed mine to 3000 to solve the error:"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}
]
I needed to set the correct workspace folder.
I needed to start my web app with npm start
before debugging.
Another update for @angular/cli 9.1.7 28/05/2020...
This is now my working configuration for @angular/cli 9.1.7. Removing the sourceMapPathOverrides
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
{
// 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": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:21460",
"webRoot": "${workspaceFolder}"
}]
}
My solution to the "Unverified breakpoint" issue.
The default .vscode/launch.json created in VSC via the "Add configuration" option will look similar to this (I have changed port from 8080 to 4200).
{
// 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": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}]
}
Adding item below resolves my issue with "Unverified breakpoint".
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
Complete and working .vscode/launch.json:
{
// 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": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
}]
}
There are some additional items that can be added:
"breakOnLoad": true,
"sourceMaps": true,
However, I didn't need these in my case to resolve the problem.
{
// 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": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"breakOnLoad": true,
"sourceMaps": true,
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
}]
}
I have a folder structure as shown below and I have opened the zero
project on VS Code.
zero/
Then launch.json
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/angular"
}
]