一、前提条件

1、以下操作和注意事项都是基于ubuntu 20.04版本进行描述。
2、以下操作和注意事项都是基于操作系统的非root用户进行描述。
3、需要提前下载dlv工具,远程服务器上的dlv工具与本地dlv工具的版本要保持一致。
4、IDE基于vscode 1.63或更高版本进行描述。

二、操作流程

1、用下列命令编译代码

go build -gcflags="all=-N -l" -o {二进制文件名称}

2、运行二进制文件

3、用下列命令查看PID

ps -aux | grep {二进制文件名称}

4、用下列命令启动pid attach

dlv --listen=:{port} --headless=true --api-version=2 attach {PID}

5、在vscode中创建launch.json文件,填入下列内容并保存

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "remote debug","type": "go","request": "attach","mode": "remote","host": "192.168.50.223","port": 2345,"cwd": "${workspaceFolder}"}]
}

6、保存后点击vscode中run and debug的运行按钮(绿色三角按钮),会出现一个调试按钮的pannel,表示已经远程连接成功。此时就可以在本地对远端服务进行调试。

三、注意事项

1、采用非root用户进行操作,会出现权限问题无法进行pid attach,需要对/etc/sysctl.d/10-ptrace.conf配置文件进行修改。

kernel.yama.ptrace_scope = 1   修改为  kernel.yama.ptrace_scope = 0

2、点击调试pannel中红色的连接断开按钮,会使远端的dlv attach进程结束。如果要继续调试,需要在远端服务器执行上面操作流程中的步骤4

3、远端服务二进制所用代码的版本必须与本地代码的版本一致

远端服务二进制所用代码的版本必须与本地代码的版本一致

远端服务二进制所用代码的版本必须与本地代码的版本一致

重要事情说三遍!!!

在VSCode环境下用dlv工具的attach模式远程调试在运行中的服务相关推荐

  1. VSCode环境下配置ESLint 对Vue单文件的检测

    本文介绍了在VSCode环境下如何配置eslint进行代码检查,并介绍了如何对.vue单文件进行支持. ESLint 安装 1.在工程根目录下,安装eslint及初始化 $ npm install e ...

  2. Mac M1 环境下CV标注工具建设

    <Mac M1 环境下CV标注工具建设>    M1 下载环境的时候会遇到很多问题,本以为下载这两个标注工具会很费事,没想到出乎意料的顺利,简单记录一下 Mac M1 下安装 CV 的标注 ...

  3. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  4. 10 款你不知道的 Linux 环境下的替代工具

    作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:10 款你不知道的 Linux 环境下的替代工具! 大 ...

  5. 基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用

    1.文档编写目的 Fayson在前面的文章介绍了<0374-如何在CDH集群中部署Kafka Manager>,本篇文章Fayson介绍另外一款的监控工具Kafka-eagle,它可以同时 ...

  6. 【第83期】10 款你不知道的 Linux 环境下的替代工具!

    大家好,我是华章妹. 在 Linux 操作系统下,我们经常使用 cat 命令去连接多个文件并打印到标准输出,合成几个文件为一个目标文件,追加几个文件到目标文件中. 最近我在 GitHub 上发现了一个 ...

  7. WIndow 10 环境下使用CURL工具完成企业微信机器人的提醒功能

    企业微信机器人提醒功能实现说明 本文档主要讲解企业微信机器人的提醒功能的在window下的实现方法,主要内容包括机器人的创建,CURL工具使用环境的搭建和最终实现消息提醒功能三个主要模块.企业微信机器 ...

  8. Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案

    问题描述 AttributeError: 'MSVCCompiler' object has no attribute 'compiler_so' ValueError: Buffer dtype m ...

  9. linux 环境下安装和配置mysql数据库以及远程登录

      上一篇文章写了linux 环境下配置python虚拟环境, 本篇文章我们来看看如何在linux环境下配置 mysql, 并实现远程数据库登录.    安装 //root 下安装,为了方便操作我全部 ...

最新文章

  1. 三、临时弹出一个QQ对话窗口
  2. wxWidgets:wxHtml 测试示例
  3. primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
  4. WCF学习之旅—WCF概述(四)
  5. ELF应用程序二进制接口
  6. 微软要放弃Edge了?传微软正在构建基于Chromium的浏览器
  7. android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析
  8. Android Material Design调色板
  9. 传智播客 C/C++学习笔记 在向指针所指空间copy数值,要分配内存
  10. 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求
  11. 关于win7系统重装完鼠标不能用的解决办法
  12. facebuilder免费版_Face Blender(人脸混合器)V2018 最新免费版
  13. Cocos2d-iphone学习笔记
  14. 什么SEO内容可以吸引外部链接
  15. 用python对S曲线加减速建模
  16. js去掉最后一个逗号
  17. linux实践感悟与体会100字,掌上综素b5学科时间活动心得体会50字
  18. uni-app安心打包ios失败
  19. office2018自动图文集_学会使用Word自动图文集,让你事半功倍
  20. CSU 1224: ACM小组的古怪象棋(BFS)

热门文章

  1. 《The Art Of Effective Rigging In Blender》笔记:手臂部分的IK/FK切换
  2. c语言中scanf返回值被忽略,返回值被忽略scanf是什么意思
  3. 最小公倍数和最大公约数的三种算法
  4. java第五章总结(字符串的应用)
  5. L4级自动驾驶,插上车路协同的翅膀才能飞?
  6. vs2015 无法启动程序 系统找不到指定的文件
  7. JavaSE-Lambada
  8. spring boot的启动与配置
  9. torch.utils.tensorboard用法
  10. 基于PHP+MySQL大连真爱果汁厂管理系统的设计与实现