Debugging Framework Providers
This page contains implementation details for inspecting runtime information of a Terraform provider developed with Framework via a debugger tool. Review the top level Debugging page for information pertaining to the overall Terraform provider debugging process and other inspection options, such as log-based debugging.
Code Implementation
Update the main
function for the project to conditionally enable the providerserver/ServeOpts.Debug
field. Conventionally, a -debug
flag is used to control the Debug
value.
This example uses a -debug
flag to enable debugging, otherwise starting the provider normally:
func main() {
var debug bool
flag.BoolVar(&debug, "debug", false, "set to true to run the provider with support for debuggers like delve")
flag.Parse()
opts := providerserver.ServeOpts{
Address: "registry.terraform.io/example-namespace/example",
Debug: debug,
}
err := providerserver.Serve(context.Background(), provider.New(), opts)
if err != nil {
log.Fatal(err.Error())
}
}