草庐IT

debug-print

全部标签

debugging - 无法调试二进制文件 - "could not launch process: could not find .debug_line section in binary"

我正在使用GoLandIDE,我有以下简单代码:packagemainimport("fmt""time")funcmain(){start:=time.Now()time.Sleep(2*time.Second)elapsed:=time.Since(start)fmt.Println("elapsed:%s",elapsed)}当我运行它时,它工作正常并且我看到了输出。当我在其中一行中放置断点时,我收到以下错误:GOROOT=/usr/local/go#gosetupGOPATH=/root/go#gosetup/usr/local/go/bin/gobuild-o/tmp/___

debugging - 如何在 delve 中打印字符串变量的完整值?

我正在使用delvego调试器来调试一些代码。当我尝试打印一个字符串变量时,它给了我一个缩写版本。(dlv)printmyString"mystring...+539more"如何让它打印完整的字符串? 最佳答案 配置打印字符串长度的功能最近被添加到delve中。查看configurationoptions的完整列表,运行config-list;(dlv)config-listaliasesmap[]substitute-path[]max-string-lenmax-array-valuesshow-location-exprfa

shell - 如何将 fmt.Print 和 log.Print 保存到 Golang 中的同一个文件中

在shell中,我使用gorunfile>output,但只有fmt.Print被保存到输出中。所有的log.Print依然输出到屏幕!并且在网上搜索后,我发现我可以为日志设置输出目录,但是如何将日志和fmt保存在同一个文件中? 最佳答案 记录器写入STDERR,而fmt.PrintXXX函数写入STDOUT。你有两个选择:1)捕获STDERR到文件中。Bash类shell使用:gorunfile>output2>&12)设置记录器的Output至os.Stdout然后你像正常一样运行gorunfile>output并且记录器和fm

Golang 标志库 : Unable to override Usage function that prints out command line usage

我正在开发一个简单的命令行工具,但我发现默认的Usage消息有点欠缺。我想定义我自己的,我认为我做对了我指的是thisexample.我注释掉了我编写的大部分代码,因此包含main函数的文件现在看起来像这样:packagemainimport("flag""fmt""os")funcmain(){//setthecustomUsagefunctionsetupFlags(flag.CommandLine)//defineflags...//thenparseflagsflag.Parse()//customcodethatusesflagvalues...}funcsetupFlags

debugging - Golang delve,如何启动调试器并启动正在调试的应用程序?

我正在尝试设置一个可以远程连接的headlessDelve调试器。我无法找到一种方法来启动不会暂停我正在调试的应用程序的调试服务器。我一直在使用dlvattach--headless=true--listen=:2345attach32但这会暂停进程。或者我可以使用dlv--headless=true--listen=:2345execapp如果这允许应用程序二进制文件运行。不知道init文件能不能做这样的事情?我找不到关于它到底是什么的任何文档。 最佳答案 如果你考虑delveissue145,这可能是一个特性,而不是一个错误:I

debugging - 使用 GDB 调试 Go 时的奇怪行为

我有一个Go程序,我正在使用GDB(也是Eclipse/Goclipse,但它使用GDB,所以它们都是一样的)进行调试。有时,当我告诉GDBnext时,它的行为就像我告诉它continue或finish一样。这就像可执行文件中缺少堆栈/框架/等信息。帮忙?gdb-v给出:Copyright(C)2013FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterhttp://gnu.org/licenses/gpl.htmlThisisfreesoftware:youarefreetochangeandredistribu

debugging - Ubuntu下IntelliJ IDEA go-lang-idea-plugin Alpha调试

我正在尝试使用IntelliJIdea14.0.2和来自http://github-intellij-plugin.appspot.com/go-lang-plugin-org/go-lang-idea-plugin/alpha.xml的当前go-lang-idea-pluginalpha0.9.16-dev-0.9.16-alpha.9调试Go1.4|.如https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/588中所述这应该工作。该插件运行“Helloworld”时运行良好,但我的“调试”按钮显示为灰色。我已经

go - 运行使用 gccgo 构建的二进制文件时为 "no debug info in ELF executable errno"

我决定尝试一下Go,因此编写了以下代码:packagemainimport"fmt"funcmain(){fmt.Printf("Hello,World\n")}我将其保存在main.go下,然后尝试使用gccgomain.go-omain对其进行编译。这奏效了。但是,当我尝试./main时,我收到以下消息:nodebuginfoinELFexecutableerrno-1fatalerror:nodebuginfoinELFexecutableruntimestack:nodebuginfoinELFexecutableerrno-1panicduringpanic到底发生了什么?

debugging - 调试 Golang 代码并将其附加到本地进程

我有一个Golang代码,我通过gobuild从它为mac创建二进制文件喜欢:构建darwinamd64myapp目前我能够运行二进制文件并查看日志。现在我想调试它,有没有办法用Goland或Intellij或VSCode调试二进制文件?使用delve的常规调试在上述所有IDE中都可以正常工作,但现在我想将它附加到我能够运行的二进制进程,如果可能的话有什么想法吗? 最佳答案 如果您使用GoLand2018.1+,您应该能够使用Run|附加到本地进程功能,它将允许您调试正在运行的二进制文件。我建议您在关闭所有优化并使用Go1.10+编

go - 这个 Go print 语句的顺序是什么?

我正在学习关于Golang和这段代码的“GO之旅”教程:packagemainimport("fmt""math")funcpow(x,n,limfloat64)float64{ifv:=math.Pow(x,n);v=%g\n",v,lim)}//can'tusevhere,thoughreturnlim}funcmain(){fmt.Println(pow(3,2,10),pow(3,3,20),)}会打印“27>=20920”。我很困惑为什么不是“927>=2020”不应该第一次调用pow(3,2,10)返回9,打印它,然后调用pow(3,3,20)并打印其余的吗?