- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我需要有关使用 Delve 在 Gogland 中进行远程调试的帮助。
我尝试使用 IDE Goglang (1.0 EAP) 和 dlv 链接在远程服务器上调试我的应用程序:https://github.com/derekparker/delve/
安装并尝试远程调试简单程序:
package main
import "fmt"
func main() {
fmt.Println("hello world")
for i:=uint(0); i< 10; i++{
fmt.Println(i)
}
}
首先,在远程主机上启动 dlv(控制台输出):
$ dlv debug --headless --listen=:2345 --log --api-version=2
API server listening at: [::]:2345
然后,在IDE中开始远程调试:
从远程主机控制台输出:
2017/07/20 17:23:24 debugger.go:504: continuing
2017/07/20 17:23:24 debugger.go:493: halting
2017/07/20 17:23:24 debugger.go:347: created breakpoint: &api.Breakpoint{ID:1, Name:"", Addr:0x47bb52, File:"/....../hello/hello.go", Line:6, FunctionName:"main.main", Cond:"", Tracepoint:false, Goroutine:false, Stacktrace:0, Variables:[]string(nil), LoadArgs:(*api.LoadConfig)(nil), LoadLocals:(*api.LoadConfig)(nil), HitCount:map[string]uint64{}, TotalHitCount:0x0}
2017/07/20 17:23:24 debugger.go:504: continuing
2017/07/20 17:23:28 debugger.go:516: nexting
hello world
2017/07/20 17:23:28 debugger.go:516: nexting
2017/07/20 17:23:29 debugger.go:516: nexting
0
2017/07/20 17:23:29 debugger.go:516: nexting
02017/07/20 17:23:29 debugger.go:516: nexting
2017/07/20 17:23:29 debugger.go:516: nexting
1
2017/07/20 17:23:29 debugger.go:516: nexting
12017/07/20 17:23:30 debugger.go:516: nexting
2017/07/20 17:23:30 debugger.go:516: nexting
2
2017/07/20 17:23:30 debugger.go:516: nexting
42017/07/20 17:23:30 debugger.go:516: nexting
2017/07/20 17:23:30 debugger.go:516: nexting
3
2017/07/20 17:23:30 debugger.go:516: nexting
92017/07/20 17:23:31 debugger.go:516: nexting
2017/07/20 17:23:31 debugger.go:516: nexting
4
2017/07/20 17:23:31 debugger.go:516: nexting
162017/07/20 17:23:31 debugger.go:516: nexting
2017/07/20 17:23:31 debugger.go:516: nexting
5
2017/07/20 17:23:32 debugger.go:516: nexting
252017/07/20 17:23:32 debugger.go:516: nexting
2017/07/20 17:23:32 debugger.go:516: nexting
6
2017/07/20 17:23:32 debugger.go:516: nexting
362017/07/20 17:23:32 debugger.go:516: nexting
2017/07/20 17:23:32 debugger.go:516: nexting
7
2017/07/20 17:23:33 debugger.go:516: nexting
492017/07/20 17:23:33 debugger.go:516: nexting
2017/07/20 17:23:33 debugger.go:516: nexting
8
2017/07/20 17:23:34 debugger.go:516: nexting
642017/07/20 17:23:34 debugger.go:516: nexting
2017/07/20 17:23:34 debugger.go:516: nexting
9
2017/07/20 17:23:34 debugger.go:516: nexting
812017/07/20 17:23:34 debugger.go:516: nexting
2017/07/20 17:23:35 debugger.go:516: nexting
2017/07/20 17:23:35 debugger.go:516: nexting
一切如我所料(断点、F7、F8 等)
然后我尝试调试我的APP:
dlv debug --headless --listen=:2345 --log --api-version=2 -- --v --console
2017/07/20 17:26:51 debugger.go:97: launching process with args: [/home/...../debug --v --console]
API server listening at: [::]:2345
IDE 启动
输出:
2017/07/20 17:26:55 debugger.go:493: halting
2017/07/20 17:26:55 debugger.go:347: created breakpoint: &api.Breakpoint{ID:1, Name:"", Addr:0x687a73, File:"/home/..........go", Line:136, FunctionName:"main.main", Cond:"", Tracepoint:false, Goroutine:false, Stacktrace:0, Variables:[]string(nil), LoadArgs:(*api.LoadConfig)(nil), LoadLocals:(*api.LoadConfig)(nil), HitCount:map[string]uint64{}, TotalHitCount:0x0}
2017/07/20 17:26:55 debugger.go:347: created breakpoint: &api.Breakpoint{ID:2, Name:"", Addr:0x6869b2, File:"/home/..........go", Line:66, FunctionName:"main.main", Cond:"", Tracepoint:false, Goroutine:false, Stacktrace:0, Variables:[]string(nil), LoadArgs:(*api.LoadConfig)(nil), LoadLocals:(*api.LoadConfig)(nil), HitCount:map[string]uint64{}, TotalHitCount:0x0}
2017/07/20 17:26:55 debugger.go:504: continuing
2017/07/20 17:26:55 debugger.go:347: created breakpoint: &api.Breakpoint{ID:3, Name:"", Addr:0x687d33, File:"/home/........go", Line:143, FunctionName:"main.main", Cond:"", Tracepoint:false, Goroutine:false, Stacktrace:0, Variables:[]string(nil), LoadArgs:(*api.LoadConfig)(nil), LoadLocals:(*api.LoadConfig)(nil), HitCount:map[string]uint64{}, TotalHitCount:0x0}
2017/07/20 17:26:55 debugger.go:504: continuing
2017/07/20 17:26:57 debugger.go:516: nexting
IDE 调试不起作用(挂起)。如果我不使用断点应用程序启动并像往常一样运行 (RUN)。
我认为这条线是我的问题的原因:
2017/07/20 17:26:45 debugger.go:493:暂停
为什么会出现??可能是我的实用结构比较复杂(主包分为几个文件,当然还有外挂包等等)还是别的?
但是(!最有趣的!)是,如果您不是通过 IDE,而是通过控制台加入远程服务器,那么调试就可以在一个简单的示例上进行,对于我的实用程序:
dlv connect HOSTNAME:2345
Type 'help' for list of commands.
(dlv) b ********.go:137
Breakpoint 1 set at 0x687a86 for main.main() /home/*************.go:137
(dlv) c
> main.main() /home/***************************.go:137 (hits goroutine(1):1 total:1) (PC: 0x687a86)
(dlv) n
输出:
$ dlv debug --headless --listen=:2345 --log --api-version=2 -- --v --console
2017/07/20 17:37:37 debugger.go:97: launching process with args: [/home/*****************/debug --v --console]
API server listening at: [::]:2345
2017/07/20 17:38:27 debugger.go:347: created breakpoint: &api.Breakpoint{ID:1, Name:"", Addr:0x687a86, File:"/home/*******************.go", Line:137, FunctionName:"main.main", Cond:"", Tracepoint:false, Goroutine:false, Stacktrace:0, Variables:[]string(nil), LoadArgs:(*api.LoadConfig)(nil), LoadLocals:(*api.LoadConfig)(nil), HitCount:map[string]uint64{}, TotalHitCount:0x0}
2017/07/20 17:38:35 debugger.go:504: continuing
2017/07/20 17:38:39 debugger.go:516: nexting
那些。怀疑IDE有错误,或者我做错了什么:)。
我还尝试使用 dlv exec(已经构建应用程序)和其他命令进行调试。
感谢您花时间回答这个问题,我真的希望得到帮助。
附言我也很高兴知道您还可以使用什么来远程调试 GO 应用程序。
附言我尝试在 Atom.io 和 VS 代码中进行远程调试在 Atom 中,仅使用 dlv 进行语言环境调试。
在 VS 代码中,本地调试器通过 dlv + 远程调试器工作,但断点不起作用!那些。 VS Code 也不是一个选项。配置 VS 代码 (launch.json)
{
"version": "0.2.0",
"configurations": [
{
"name": "REMOTE",
"type": "go",
"request": "launch",
"mode": "remote",
"remotePath": "{workspaceRoot}",
"port": 2345,
"host": "REMOTE_HOST_NAME",
"program": "${workspaceRoot}", //"${fileDirname}",
"env": {},
"args": ["--v", "--console"],
"showLog": true
}
]
}
最佳答案
问题是基于 IDE 的。解决版本:构建:EAP 12,172.3757.46发布时间:2017 年 8 月 11 日
关于debugging - 远程调试 Gogland 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45238337/
我在 Go 中有一个简单的代码: package main import ( "bufio" "os" "fmt" ) func main() { scanner :=
如何在MacOS的Gogland IDE中引入局部变量?? 我有下面的代码,想为通过 ParseKnowHosts 函数返回的所有返回值引入局部变量。 authorizedKeyBytes, erro
我想在使用 curl 命令发送请求时调试我的 go 应用程序。 目前我的请求由我拥有的二进制文件处理。当我使用 curl 命令请求发送请求时,我希望由我没有的代码处理,而不是由二进制文件处理。 我没有
我需要有关使用 Delve 在 Gogland 中进行远程调试的帮助。 我尝试使用 IDE Goglang (1.0 EAP) 和 dlv 链接在远程服务器上调试我的应用程序:https://gith
我是 GO 的新手,需要一些帮助。我的所有项目都有这样的结构: go_projects -bin -pkg -src --FirstProject --SecondProject 在 Gogland
在我的调试控制台中更新到最新的 Gogland 版本后,我看到了这样的信息 GOROOT=/usr/local/go GOPATH=/Users/mayvas/GoProjects /usr/loca
无论我如何设置我的构建配置来运行我的测试,go 测试工具总是以 ./... 运行 例如 运行: go test -v -cover ./... -run ./svs 最佳答案 根据您需要运行的内容,您
我是 Go 和 Gogland 的新手。我刚刚下载了“go1.8.3.windows-amd64.msi”,将其安装在 C 盘中,然后开始在记事本中编写我的程序,最后从终端运行它。 我在使用 Gogl
我开始使用 gogland。我有一个运行问题。 最佳答案 错误消息说您需要选择一个文件以使配置生效。具体来说,它必须是包含 func main() 声明的文件。 您可以使用运行类型:包而不是文件来运行
我是 Go 语言的新手,下载了一个名为 Gogland-EAP 的 IDE。 (https://download.jetbrains.8686c.com/go/gogland-171.4694.61.
大家好。我对 Go 和 Gogland 很陌生。我有一个项目 我选择“运行类型”作为包 - 不仅运行主文件而且运行项目。为什么找不到主包?? 如何将 util.myprinter 包导入到 main.
我下载了最新的 Gogland 以运行/调试 Go 1.8.1 应用程序。 我在最新的 Intellij Ultimate EAP 中遇到了确切的问题。 我的项目的 main 包包含几个文件,当我尝试
这是 my previous question 的延续. 我可以调用 GAE/Go 本地开发服务器,但我无法在 Gogland 上调试我的 GAE/Go 应用程序。 运行 -> 调试 然后我选择了“编
如何在 Gogland 上调用 GAE/Go 本地开发服务器? 在运行/调试配置窗口中,我收到警告“未指定 Go SDK”,但我找不到如何设置 Go SDK。 即便如此,我还是按下了 OK,并调用了
不久前我已经切换到 Go。我选择 JetBrains Gogland 作为 IDE。我都喜欢:Go 和 IDE,除了一个问题。我不知道这是 IDE 问题还是 macOS Sierra 上的 Go la
我正在尝试在 Goglang 内置终端中运行名为 release.go 的 go 脚本,它会给我以下输出 $ go run release.go # command-line-arguments fl
我在 Mac OS 上使用 JetBrains Gogland 1.0 EAP,一切正常,但调试(基于 delve)会引发错误 could not launch process: could not
我用的是JetBrains的Gogland工具来学习go语言,我安装成功了,但是打不开,现将报错列如下,有没有人遇到过这个问题?如能解决,将不胜感激。 错误: Java 运行时环境检测到 fatal
我是一名优秀的程序员,十分优秀!