From bfe34ab224526df033a0842f92f0b1d66b2c886e Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Sun, 12 Jun 2022 07:53:18 -0400 Subject: [PATCH 1/2] Disable trimpath in debug mode This allows remote debugging with debuggers like vscode and Goland --- hack/lib/golang.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 724758c8926..dc5b5557571 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -705,6 +705,7 @@ kube::golang::build_binaries_for_platform() { done V=2 kube::log::info "Env for ${platform}: GOOS=${GOOS-} GOARCH=${GOARCH-} GOROOT=${GOROOT-} CGO_ENABLED=${CGO_ENABLED-} CC=${CC-}" + V=3 kube::log::info "Building binaries with GCFLAGS=${gogcflags} ASMFLAGS=${goasmflags} LDFLAGS=${goldflags}" local -a build_args if [[ "${#statics[@]}" != 0 ]]; then @@ -807,8 +808,9 @@ kube::golang::build_binaries() { gogcflags="all=-trimpath=${trimroot} ${GOGCFLAGS:-}" if [[ "${DBG:-}" == 1 ]]; then - # Debugging - disable optimizations and inlining. - gogcflags="${gogcflags} -N -l" + # Debugging - disable optimizations and inlining and trimPath + gogcflags="${GOGCFLAGS:-} -N -l" + goasmflags="" fi goldflags="all=$(kube::version::ldflags) ${GOLDFLAGS:-}" From 86cd654371233eadbd6f41f217dfa2516501c878 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Mon, 13 Jun 2022 14:31:37 -0400 Subject: [PATCH 2/2] We need to all all=-N -l because some objects are being optimzied away Without all=-N -l, some objects are being optimized away and impossible to debug --- hack/lib/golang.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index dc5b5557571..050f3d9388a 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -809,7 +809,7 @@ kube::golang::build_binaries() { gogcflags="all=-trimpath=${trimroot} ${GOGCFLAGS:-}" if [[ "${DBG:-}" == 1 ]]; then # Debugging - disable optimizations and inlining and trimPath - gogcflags="${GOGCFLAGS:-} -N -l" + gogcflags="${GOGCFLAGS:-} all=-N -l" goasmflags="" fi