> For the complete documentation index, see [llms.txt](https://docs.qu35t.pw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qu35t.pw/vscode-debug.md).

# VSCode Debug

### Flask application

#### Install debugpy in your Dockerfile

```docker
RUN pip install debugpy
```

#### Run the debug server

```bash
python3 -m debugpy --listen 0.0.0.0:5679 run.py
```

#### Expose debug port

```bash
docker run -p 1337:1337 -p 5679:5679 --rm --name=cop -it cop
```

#### launch.json (.vscode)

```json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Attach to Container",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 5679
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}/challenge",
                    "remoteRoot": "/app"
                }
            ]
        }
    ]
}
```

### NodeJS application

#### Run with debug server

```bash
node --inspect=0.0.0.0:9229 app.js
```

#### Expose debug port

```bash
docker run -p 1337:80 -p 9229:9229 -it --name=web_easterbunny web_easterbunny
```

#### launch.json (.vscode)

```json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Node",
            "type": "node",
            "request": "attach",
            "port": 9229,
            "address": "localhost",
            "localRoot": "${workspaceFolder}/challenge",
            "remoteRoot": "/app",
            "protocol": "inspector"
        }
    ]
}
```
