Browse Source

Merge pull request #6604 from sinsharat/support_debug_build_using_delve_gdb

build: Added support for debugging using delve, gdb, etc
Anthony Romano 9 years ago
parent
commit
c10dad41a3
2 changed files with 16 additions and 4 deletions
  1. 7 2
      build
  2. 9 2
      build.ps1

+ 7 - 2
build

@@ -4,6 +4,11 @@
 ORG_PATH="github.com/coreos"
 ORG_PATH="github.com/coreos"
 REPO_PATH="${ORG_PATH}/etcd"
 REPO_PATH="${ORG_PATH}/etcd"
 export GO15VENDOREXPERIMENT="1"
 export GO15VENDOREXPERIMENT="1"
+
+# Set GO_LDFLAGS="" for building with all symbols for debugging.
+if [ -z "${GO_LDFLAGS+x}" ]; then GO_LDFLAGS="-s"; fi
+GO_LDFLAGS="$GO_LDFLAGS -X ${REPO_PATH}/cmd/vendor/${REPO_PATH}/version.GitSHA=${GIT_SHA}"
+
 eval $(go env)
 eval $(go env)
 GIT_SHA=`git rev-parse --short HEAD || echo "GitNotFound"`
 GIT_SHA=`git rev-parse --short HEAD || echo "GitNotFound"`
 if [ ! -z "$FAILPOINTS" ]; then
 if [ ! -z "$FAILPOINTS" ]; then
@@ -31,8 +36,8 @@ etcd_build() {
 	if [ -n "${BINDIR}" ]; then out="${BINDIR}"; fi
 	if [ -n "${BINDIR}" ]; then out="${BINDIR}"; fi
 	toggle_failpoints
 	toggle_failpoints
 	# Static compilation is useful when etcd is run in a container
 	# Static compilation is useful when etcd is run in a container
-	CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "-s -X ${REPO_PATH}/cmd/vendor/${REPO_PATH}/version.GitSHA=${GIT_SHA}" -o ${out}/etcd ${REPO_PATH}/cmd/etcd || return
-	CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "-s" -o ${out}/etcdctl ${REPO_PATH}/cmd/etcdctl || return
+	CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "$GO_LDFLAGS" -o ${out}/etcd ${REPO_PATH}/cmd/etcd || return
+	CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "$GO_LDFLAGS" -o ${out}/etcdctl ${REPO_PATH}/cmd/etcdctl || return
 }
 }
 
 
 etcd_setup_gopath() {
 etcd_setup_gopath() {

+ 9 - 2
build.ps1

@@ -1,6 +1,13 @@
 $ORG_PATH="github.com/coreos"
 $ORG_PATH="github.com/coreos"
 $REPO_PATH="$ORG_PATH/etcd"
 $REPO_PATH="$ORG_PATH/etcd"
 $PWD = $((Get-Item -Path ".\" -Verbose).FullName)
 $PWD = $((Get-Item -Path ".\" -Verbose).FullName)
+$GO_LDFLAGS="-s"
+
+# Set $Env:GO_LDFLAGS=" "(space) for building with all symbols for debugging.
+if ($Env:GO_LDFLAGS.length -gt 0) {
+	$GO_LDFLAGS=$Env:GO_LDFLAGS
+}
+$GO_LDFLAGS="$GO_LDFLAGS -X $REPO_PATH/cmd/vendor/$REPO_PATH/version.GitSHA=$GIT_SHA"
 
 
 # rebuild symlinks
 # rebuild symlinks
 echo "Rebuilding symlinks"
 echo "Rebuilding symlinks"
@@ -41,5 +48,5 @@ if (-not $env:GOPATH) {
 $env:CGO_ENABLED = 0
 $env:CGO_ENABLED = 0
 $env:GO15VENDOREXPERIMENT = 1
 $env:GO15VENDOREXPERIMENT = 1
 $GIT_SHA="$(git rev-parse --short HEAD)"
 $GIT_SHA="$(git rev-parse --short HEAD)"
-go build -a -installsuffix cgo -ldflags "-s -X $REPO_PATH/cmd/vendor/$REPO_PATH/version.GitSHA=$GIT_SHA" -o bin\etcd.exe "$REPO_PATH\cmd\etcd"
-go build -a -installsuffix cgo -ldflags "-s" -o bin\etcdctl.exe "$REPO_PATH\cmd\etcdctl"
+go build -a -installsuffix cgo -ldflags $GO_LDFLAGS -o bin\etcd.exe "$REPO_PATH\cmd\etcd"
+go build -a -installsuffix cgo -ldflags $GO_LDFLAGS -o bin\etcdctl.exe "$REPO_PATH\cmd\etcdctl"