服务器端开发-golang dlv 远程调试

这篇具有很好参考价值的文章主要介绍了服务器端开发-golang dlv 远程调试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1。需要root权限的服务器代码调试

  1. sudo ./app
  2. ps to get pid
  3. dlv attach pid --headless --listen=:40000 --api-version=2 --accept-multiclient
  4. attach the golang IDE or other IDE

2。不需要root权限的服务器代码调试,另一种选择

  1. dlv --listen=:40000 --headless=true --api-version=2 --accept-multiclient exec ./app -- -config-file=config file path
  2. attach the golang IDE or other IDE

"-- -config-file=config file path" is optional

  • --listen=:40000: debug的监听端口
  • --headless=true --api-version=2 --accept-multiclient: run in a headless mode, specify api version and allow multi client,
  • exec app: execute the go binary app.
  • --accept-multiclient 参数表示客户端断开连接之后,远程的dlv程序不关闭,否则在客户端点击断开连接后,远程dlv服务就会关闭(也就是不加这个参数调试时一次性的)

3. 编译的时候记得 go build -gcflags="all=-N -l", 关闭优化

在客户端.luanch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Connect to server",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "remotePath": "${workspaceFolder}",
            "port": 32346,
            "host": "192.168.1.1"
        }
    ]
}

这篇文章可以参考 Remote debug your go code,记录的是第二种调试方法,还有docker,以及goland的设置。

在容器中使用dlv时 需要注意:

问题是动态编译dlv二进制文件。当您使用go install下载二进制文件时,默认情况下,它使用CGO_ENABLED=1下载(除非重写),这要求在运行时加载大多数运行时库(包括glibc)。这在某些容器映像中可能无法正常工作,因为其中不存在库(例如,从scratch/distro-less静态映像构建的映像)。

因此,为了避免与容器映像的依赖关系之间的依赖关系,请始终通过将上述标志设置为0来下载静态编译的依赖关系。在docker上下文中使用下载的二进制文件

CGO_ENABLED=0 go install github.com/go-delve/delve/cmd/dlv@latest

您还可以在dlv上观察静态编译版本和动态编译版本之间的ldd输出。前者不会列出需要动态加载的库,后者会列出它们。

调试中遇到问题:

在k8s容器中运行dlv attach 报错try writing “0“ to /proc/sys/kernel/yama/ptrace_scope_tankpanv的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-632484.html

到了这里,关于服务器端开发-golang dlv 远程调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Golang 通过开源库 go-redis 操作 NoSQL 缓存服务器

    前置条件: 1、导入库: import ( \\\"github.com/go-redis/redis/v8\\\" ) 2、搭建哨兵模式集群 具体可以百度、谷歌搜索,网上现成配置教程太多了,不行还可以搜教程视频,跟着视频博主一步一个慢动作,慢慢整。 本文只介绍通过 “主从架构 / 哨兵模式” 访问的形式,这是因为,单个

    2024年01月23日
    浏览(48)
  • VSCode连接远程服务器调试代码详细流程

    在研究人工智能项目时,很多时候本地机器性能不够,只能把代码拉倒服务器上,然后利用服务器资源来运行代码。遇到问题时需要调试,本文详细介绍利用VScode来调试远程服务器上的代码。 先安装Remote SSH插件并添加配置文件 右击安装好的插件,并指定配置文件路径 创建远

    2024年02月10日
    浏览(42)
  • pycharm:远程连接服务器调试代码(保姆级详细步骤)

    用笔记本的CPU去跑深度学习的模型,特别是计算机视觉方向,是一件不切实际的事情,所以我们大多数人的做法是----在本地写好代码,然后上传到服务器上去运行。 然而,每一次修改代码后,都要重新将代码上传服务器,这十分繁琐,如果能 直接将代码同步到服务器上 ,岂

    2024年01月18日
    浏览(70)
  • 01-10 周二 PyCharm远程Linux服务器配置进行端点调试

    01-10 周二 PyCharm远程Linux服务器配置 时间 版本 修改人 描述 2023年1月10日14:04:15 V0.1 宋全恒 新建文档 2023年2月6日11:03:45 V0.2 宋全恒 添加快捷指令别名的实现方便虚拟环境的切换 使用 PyCharm,您可以使用位于另一台计算机(服务器)上的解释器调试应用程序 。 参考该博客  在使用

    2024年02月07日
    浏览(62)
  • VScode在远程服务器进行python代码的调试【conda环境】

    其中vscode中需要安装扩展:remote ssh 装完扩展后本地多个图标,如下图所示: 当然,初始状态不是这样(因为我已经配置好了哈),你需要点击“+”,然后在框框中输入用户名和服务器IP地址 进行相应的配置 ! 点击上面的设置按钮可以进行.ssh/config的配置文件编辑,点击+好来

    2024年02月13日
    浏览(39)
  • 采用Vscode进行ssh连接远程服务器并实现代码运行和调试

    这篇博客介绍了使用Pycharm进行ssh连接服务器进行代码调试:https://blog.csdn.net/m0_48086806/article/details/135112106 实际上使用Vscode也可以进行同样的操作 VSCode,全称为 Visual Studio Code ,是一款由微软开发的免费开源代码编辑器。它支持多种编程语言,并且具有强大的功能和扩展性。

    2024年01月17日
    浏览(56)
  • pycharm远程调试服务器代码提示illegal char at index 0

    并不是在pycharm的右侧remote Host选择服务器上的文件,然后点击执行 这是报错的根本原因,而是在把文件同步到本地,在本地执行。会自动执行服务器上该文件。并使用服务器上的环境和解释器

    2024年02月03日
    浏览(56)
  • python系列:配置VS Code + Ubuntu服务器 + Docker + Python:远程调试Debug

    背景: 有服务器且在服务器中安装了Docker 使用VS Code进行远程Debug 原理: ​ 使用SSH来实现 1.Docker容器配置 以新建tensorflow的Docker容器为例 拉取tensorflow的镜像 使用指令 即可拉取tensorflow-gpu的镜像 使用指令 即可查看当前Docker中保存的全部镜像 新建容器 新建容器的指令如下 指

    2024年01月23日
    浏览(46)
  • IDEA远程服务器开发

    IDEA的远程开发是在本地去操远程服务器上的代码,可以直接将本地代码的编译,构建,调试,运行等工作都放在远程服务器上而本地运行一个客户端远程去操作服务器上的代码,就如同我们平常写代码一样。相比于云桌面成本更低,开发效率更高。 1.首先服务器配置jdk,maven以及环

    2024年01月25日
    浏览(33)
  • C++服务器框架开发11——编译调试1/cmake学习

    该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C++高级教程]从零开始开发服务器框架(sylar) 上一篇:C++服务器框架开发10——日志系统1~9代码 学习到第6个视频的00:59,由于不了解编译,这次先学习下cmake。下图是CMakeLists.txt中的内容。 参考自文

    2024年02月16日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包