# Debug

Running the target in an encapsulated environment is recommended.

## Debugging using Dockerfile.debug

A Dockerfile for debugging (`Dockerfile.debug`) is provided within the
repositories root.

### Usage:

The following assumes that VSCode is used.

1.  Extend `launch.json`:

```
{
  "version": "0.2.0",
  "configurations": [
    ...
    {
      "name": "Go Containerized Debug",
      "type": "go",
      "request": "attach",
      "mode": "remote",
      "port": 4000,
      "host": "127.0.0.1"
    }
  ]
}
```
2. Build the debug container: `make container-debug`
3.  Run the container: `docker run --rm --privileged -d -p 7030:7030 -p 4000:4000 gnmi-target-debug:latest`
4.  Set breakpoints and attach to the running container by using the configuration added in step 1