centos7系统中调试golang运行时服务

获取centos镜像

官方镜像
docker pull centos@latest
saileifeng/centos-go-runtime-tool是我已经打好环境的镜像
docker pull saileifeng/centos-go-runtime-tool@latest

启动centos容器

启动容器的时候需要使用超级权限模式,因为gdb运行时 ptrace: Operation not permitted.

docker run --privileged

安装gdb

  • 首先需要用yum方式安装默认的gdb版本,这个版本中有pstack命令,后续会使用到
    yum install gdb -y
  • 安装gdb8,默认的7.3查看进程的时候只能查看当前的线程,想要查看当前进程中的所有线程就比较麻烦了
    • 安装Texinfo文档系统
      yum install ncurses-devel -y
    • 下载gdb源码包
      wget https://ftp.gnu.org/gnu/gdb/gdb-8.3.tar.gz
    • 解压
      tar -zxvf gdb-8.3.tar.gz
    • 编译安装
      cd gdb-8.3 && make && make install
    • 替换老版本
      cp gdb/gdb /usr/bin/gdb
    • 查看版本信息
      gdb -v

安装golang环境

  • 下载安装包
    wget https://studygolang.com/dl/golang/go1.12.linux-amd64.tar.gz
  • 解压
    tar -C /usr/local -xzf go1.12.linux-amd64.tar.gz
  • 配置环境变量
    • 打开文件
      vim /etc/profile
    • 加入配置信息
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    export GOPATH=/root/go
    export PATH=$PATH:$GOPATH/bin
    export GOPROXY=https://mirrors.aliyun.com/goproxy/
    export GO111MODULE=on
    
  • 刷新环境变量
    • 临时生效
      source /etc/profile
    • 容器中永久生效方法
      • 打开文件
        vim /etc/bashrc
      • 加入配置信息
        source /etc/profile
  • 查看版本信息
    go --version

安装delve

delve是golang官方推出的一个debug工具

git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
cd $GOPATH/src/github.com/go-delve/delve
make install

你可能感兴趣的:(centos7系统中调试golang运行时服务)