首页 > 其他分享 >delve安装及使用

delve安装及使用

时间:2023-06-17 18:35:10浏览次数:34  
标签:-- version dlv 使用 go delve 安装 调试

  • 安装

  Clone the git repository and build:$ git clone https://github.com/go-delve/delve

$ cd delve
$ go install github.com/go-delve/delve/cmd/dlv

  Alternatively, on Go version 1.16 or later:

# Install the latest release:
$ go install github.com/go-delve/delve/cmd/dlv@latest

# Install at tree head:
$ go install github.com/go-delve/delve/cmd/dlv@master

# Install at a specific version or pseudo-version:
$ go install github.com/go-delve/delve/cmd/[email protected]
$ go install github.com/go-delve/delve/cmd/[email protected]

  macOS considerations

On macOS make sure you also install the command line developer tools:

$ xcode-select --install
If you didn't enable Developer Mode using Xcode you will be asked to authorize the debugger every time you use it. To enable Developer Mode and only have to authorize once per session use:

sudo /usr/sbin/DevToolsSecurity -enable
You might also need to add your user to the developer group:

sudo dscl . append /Groups/_developer GroupMembership $(whoami)

  测试是否安装成功

dlv help
或者
dlv version 
  • 注意  

  如果安装没有报错,但是进行验证时提示:

dlv:command not found

  设置下软链接,这样可以全局使用dlv命令

ln -s $GOPATH/dlv /usr/bin/dlv
注:需配置好go环境
  • dlv启动

  本人经验有限,以下仅个人理解,有什么不对的地方欢迎指出

  dlv有三种调试方法:

    1. 依附正在运行的进程
    2. 编译一个关闭内联优化、生产调试符号的程序包
    3. debug模式
  • 方法一:

    依附进程

dlv attach <Pid> --headless --api-version=2 --listen=:<port>

    Pid可通过ps命令查找

ps aux |grep xxx

    port是dlv开放的调试端口 示例:2345

  • 方法二:

go build -gcflags "all=-N -l" [output] [project]

    output:编译后的包存放的地址及包的名字 示例:-o /opt/bin/test

    project:需要编译的工程地址 示例: ./

dlv --listen=:<port> --headless=true --api-version=2 --accept-multiclient exec <path>

    path:编译好的包地址 示例:./test

  • 方法三:

dlv debug --headless --listen=:<port> --api-version=2 --accept-multiclient
  • 调试

    可通过命令行调试或者使用goland、vscode等工具调试

    这里介绍如何使用命令行和goland进行远程连接调试

  •     命令行
dlv connect <addr>

    addr:远程地址 示例:192.168.0.156:2345

    连接上后利用命令进行调试

  •     goland

    点击工具栏 Run >> edit Configurations

 

                 

     点 + 号新增一个Go Remote 配置远程IP及dlv开放的调试端口,勾选关闭远程调试即kill dlv

     配置好后,点击右上角debug按钮既可进行断点远程调试

    注:不要从main方法旁进行debug

 

标签:--,version,dlv,使用,go,delve,安装,调试
From: https://www.cnblogs.com/luozq/p/17488036.html

相关文章

  • 懒加载与急加载FetchType.LAZY&FetchType.EAGER的区别和使用?
    1、FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载。2、FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。3、比方User类有两个属性,name跟address,登录后用户名是需要显示出来的,此属性用到的几率极大,要马上到数据库查,用......
  • pywinauto使用指南
    @目录安装使用须知确定app的可访问技术启动应用程序辅助工具详细使用开启app连接已经打开的应用程序选择程序窗口窗口控件分类窗口控件基本属性获取方法获取控件的文本内容对窗口/控件的截图处理菜单的相关操作菜单控件菜单项控件等待机制wait系列timings系列编辑类控件模拟用户......
  • [ Shell ] 在 Bash 中如何使用“字典”
    https://www.cnblogs.com/yeungchie/定义declare-Adict赋值批量赋值dict=([a]=1[b]=2[c]=3)追加赋值dict[lib]=topdict[cell]=XX1234dict[view]=layout取值取值方式与数组一样。echo"${dict[a]}"#1echo"${dict[cell]}"#XX1234打印所有key和value......
  • NodeJS系列(2)- 在 NPM 项目里使用 ECMAScript 6 (ES6) 规范
    NPM(NodePackageManager),NodeJS包或模块管理工具,比较新的NodeJS版本一般内置NPM。NPM有点类似于Maven在Java开发中的作用,NPM项目也和Maven项目类似,包含了创建、编译、运行、打包、部署等功能。ECMAScript6(ES6)是最新的JavaScript语言的标准化规范,它的目标是......
  • Day02 2.2 ADB配置和使用
    ADB配置和使用【一】什么是ADB「adb」即AndroidDebugBridge,亦称安卓调试桥是谷歌为安卓开发者提供的开发工具之一,可以让你的电脑以指令窗口的方式控制手机。可以在安卓开发者网页中的SDK平台工具页面下直接下载对应系统的adb配置文件,大小只有几十MB1下载地址(......
  • wsl 安装的Ubuntu 和windows 里面的文件如何共享
    原文:oucanalsoaccessyourlocalmachine’sfilesystemfromwithintheLinuxBashshell–you’llfindyourlocaldrivesmountedunderthe /mnt folder.Forexample,your C: driveismountedunder /mnt/c:意思就是直接在Ubuntu里面cd到/mnt/c就可以了......
  • Windows下使用svn命令行
    摘自:https://zhuanlan.zhihu.com/p/75760333摘自:http://www.taodudu.cc/news/show-691550.html?action=onClick安装TortoiseSVN后直接打开命令行,发现没有命令Svn,配置环境变量发现TorToiseSvn并没有Svn.exe文件。这时需要下载一个Svn命令行工具,下载地址:https://www.visualsvn.c......
  • macOS 安装 postgreSQL
    PostgreSQLDocumentationbrewinstallpostgresqlbrewservicesstartpostgresqlcreatedb#Bydefault,adatabasewiththesamenameasthecurrentuseriscreated.#dropdbpsql......
  • 06. centos7使用docker方式安装gitlab
    gitlab初体验,使用docker进行快速安装,遇到了端口修改不生效的问题,在此记录一下。在正式环境中,gitlab的容器版,应该使用postgresql,redis,gitlab三个组件,使用标准的80端口,提供稳定且有性能的企业服务。但如果是在测试环境,或是想在一个机器上运行多个服务,则gitlab不一定能......
  • 使用tcpdump+wirkshark分析nginx反向代理无法访问问题
    问题描述在使用nginx配置多路径反向代理后端prometheus应用的时候由于prometheus本身是自动跳转到/graph才能正常访问,而使用nginx反向代理如果只是配置简单的http_proxy到后端prometheus的端口会报404错误,以下是具体的配置和报错:location/prometheus{proxy_p......