在VSCode环境下用dlv工具的attach模式远程调试在运行中的服务
一、前提条件
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模式远程调试在运行中的服务相关推荐
- VSCode环境下配置ESLint 对Vue单文件的检测
本文介绍了在VSCode环境下如何配置eslint进行代码检查,并介绍了如何对.vue单文件进行支持. ESLint 安装 1.在工程根目录下,安装eslint及初始化 $ npm install e ...
- Mac M1 环境下CV标注工具建设
<Mac M1 环境下CV标注工具建设> M1 下载环境的时候会遇到很多问题,本以为下载这两个标注工具会很费事,没想到出乎意料的顺利,简单记录一下 Mac M1 下安装 CV 的标注 ...
- Linux环境下ARM开发工具TrueSTUDIO初体验
Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...
- 10 款你不知道的 Linux 环境下的替代工具
作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:10 款你不知道的 Linux 环境下的替代工具! 大 ...
- 基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用
1.文档编写目的 Fayson在前面的文章介绍了<0374-如何在CDH集群中部署Kafka Manager>,本篇文章Fayson介绍另外一款的监控工具Kafka-eagle,它可以同时 ...
- 【第83期】10 款你不知道的 Linux 环境下的替代工具!
大家好,我是华章妹. 在 Linux 操作系统下,我们经常使用 cat 命令去连接多个文件并打印到标准输出,合成几个文件为一个目标文件,追加几个文件到目标文件中. 最近我在 GitHub 上发现了一个 ...
- WIndow 10 环境下使用CURL工具完成企业微信机器人的提醒功能
企业微信机器人提醒功能实现说明 本文档主要讲解企业微信机器人的提醒功能的在window下的实现方法,主要内容包括机器人的创建,CURL工具使用环境的搭建和最终实现消息提醒功能三个主要模块.企业微信机器 ...
- Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案
问题描述 AttributeError: 'MSVCCompiler' object has no attribute 'compiler_so' ValueError: Buffer dtype m ...
- linux 环境下安装和配置mysql数据库以及远程登录
上一篇文章写了linux 环境下配置python虚拟环境, 本篇文章我们来看看如何在linux环境下配置 mysql, 并实现远程数据库登录. 安装 //root 下安装,为了方便操作我全部 ...
最新文章
- 三、临时弹出一个QQ对话窗口
- wxWidgets:wxHtml 测试示例
- primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
- WCF学习之旅—WCF概述(四)
- ELF应用程序二进制接口
- 微软要放弃Edge了?传微软正在构建基于Chromium的浏览器
- android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析
- Android Material Design调色板
- 传智播客 C/C++学习笔记 在向指针所指空间copy数值,要分配内存
- 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求
- 关于win7系统重装完鼠标不能用的解决办法
- facebuilder免费版_Face Blender(人脸混合器)V2018 最新免费版
- Cocos2d-iphone学习笔记
- 什么SEO内容可以吸引外部链接
- 用python对S曲线加减速建模
- js去掉最后一个逗号
- linux实践感悟与体会100字,掌上综素b5学科时间活动心得体会50字
- uni-app安心打包ios失败
- office2018自动图文集_学会使用Word自动图文集,让你事半功倍
- CSU 1224: ACM小组的古怪象棋(BFS)