使用goland调试远程代码
前言
很多时候我们都在window上使用goland,并直接使用goland调试go代码。
但是很多时候我们的程序运行在Linux服务器上,虽然可以通过dlv
命令行进行手动打断点调试,但是太麻烦了。
因此我查阅资料发现,goland是支持远程调试的,因此写篇文章记录一下。
操作步骤
- 安装dlv
在Linux服务器上执行:go install github.com/go-delve/delve/cmd/dlv
,安装dlv调试工具,因为是go编译的可执行程序,可以随意复制,其他环境甚至都可以不安装go语言环境。
- 按照goland提示添加远程调试
如下图所示,配置一个远程调试:
- 添加编译配置
如下图所示,配置一个编译:
- 在服务器运行
将可执行程序上传到服务器,并使用dlv运行:
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./test001_linux
带命令行参数,在可执行程序后面带上 --
,再后面就是命令行参数:
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./test001_linux -- -s 123
- 然后再window的goland上运行调试:
总结
从知道可以用dlv调试go代码的时候,我在Linux下就用dlv命令行打断点调试,太麻烦了,最后都是打印日志搞定。
自从学会了远程调试方法,现在调试代码爽爽哒,就算远端是个啥环境都可以远程调试搞定。
使用goland调试远程代码的更多相关文章
- 使用Goland同步远程代码
新版本的goland貌似已经有了Deployment功能,故本篇文章描述的方法也不推荐使用了 以前写php时候习惯使用phpstorm这个编译器,除去本身功能强大不说,比较方便的是其自身带的Deplo ...
- 解放双手:如何在本地调试远程服务器上的Node代码
写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...
- Pycharm远程调试服务器代码(使用Pipenv管理虚拟环境)
准备工作 1.随便准备一个项目工程,在本地用Pipenv创建一个虚拟环境并生成Pipfile和pipfile.lock文件,如下: 2.准备一台服务器,我这里使用阿里云的ECS SSH连接上 $ ss ...
- 如何使用 Idea 远程调试 Java 代码
起因 这几天,我做的项目中需要使用第三方的 API,在第三方的 API 回调时,出现各种错误,需要远程调试.之前做远程调试的时候,我只会在代码中输出日志,记录下来做分析处理,但这样做既麻烦又费时,往往 ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- 使用pycharm远程调试python代码
使用 pycharm 进行 python 代码远程调试 pycharm 的远程调试是从远程机器连接到本地机器,需要在远程机器的py文件中指定本地机器的IP和端口. 远程机器上,通过easy_insta ...
- IDEA远程调试服务器代码
先在idea添加一个remote,host填服务器ip,port填监听服务器端口,默认5005 然后在服务器tomcat catalina.sh 添加(红色部分): JAVA_OPTS="$ ...
- Eclipse远程调试Java代码的三种方法
Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...
- windows下本地调试hadoop代码,远程调试hadoop节点。
1.在github上搜索下载winutils.exe相关的一套文件,下载对应hadoop的版本. 2.将所有文件复制到hadoop的bin目录下 3.将hadoop.dll复制到windows\sys ...
随机推荐
- golang面向对象分析
说道面向对象(OOP)编程, 就不得不提到下面几个概念: 抽象 封装 继承 多态 其实有个问题Is Go An Object Oriented Language?, 随便谷歌了一下, 你就发现讨论这个 ...
- ambari介绍及安装
Ambari简介 Ambari概述 Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.Ma ...
- 使用defineProperty实现自定义setter, 简化前端Angular的重构工作
一.问题场景 Angular的双向绑定给我们开发提供了很大的遍历,将父scope的引用变量作为参数传递给子指令,这样就可以方便的在父作用域内进行业务操作,数据变更会自动传递到子指令.但是如果你基于一个 ...
- 基于MATLAB的手写公式识别(7)
今天晚上通过对原有T4模型的修改实现: 1.可以识别真彩图形.(这基本是一样大的,通过这个了解图像分割的原理) 2.在识别心脑管血药类的基础上实现数字的识别.(了解图像识别原理,熟练掌握图像分割技术) ...
- 1058 A+B in Hogwarts
If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- a ...
- 在Visual Studio 中使用git——使用git管理源代码(三)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 第三部分:使用git管理源代码 ...
- android添加账户流程分析涉及漏洞修复
android修复了添加账户代码中的2处bug,retme取了很酷炫的名字launchAnyWhere.broadAnywhere(参考资料1.2).本文顺着前辈的思路学习bug的原理和利用思路. 我 ...
- jquery简单实现tab选项卡效果
html: <ul class="tab"> <li>最新</li> <li class="cur">热门< ...
- Swift系列一 - 数据类型
如果你习惯了OC的语法,第一次接触Swift的语法可能会有点抗拒,因为Swift的语法有点怪.但如果你有前端的基础,学Swift可能会有点吃力,如果你有C++的基础可能会学得比较快点.不管你有什么样的 ...
- vscode插件(摸鱼神器-小霸王游戏机
vscode插件(摸鱼神器-小霸王游戏机 步骤 vscode扩展搜索小霸王,点击下载即可. 使用 默认有一个demo小游戏,即超级玛丽. 本地仓库 可以通过local菜单上的添加按钮添加本地nes r ...