terraform/docs/debugging.md
2024-11-13 09:33:37 +00:00

1.2 KiB

How to Debug Terraform

As Terraform is written in Go you may use delve to debug it.

1. Compile & Start Debug Server

One way to do it is to compile a binary with the appropriate compiler flags:

go install -gcflags="all=-N -l"

This enables you to then execute the compiled binary via delve, pass any arguments as spin up a debug server which you can then connect to:

dlv exec $GOBIN/terraform --headless --listen :2345 --log -- apply

2a. Connect via CLI

You may connect to the headless debug server via delve CLI

dlv connect :2345

2b. Connect from VS Code

The repository provides a launch configuration, making it possible to use VS Code's native debugging integration:

vscode debugger

Note that this debugging workflow is different from the test-based one, which itself shouldn't require any of the above steps above nor the mentioned launch configuration. Meaning, that if you already have a test that hits the right lines of code you want to be debugging, or you can write one, then that may be an easier workflow.