草庐IT

yii-debug-toolbar

全部标签

debugging - Go语言中常见的陷阱有哪些?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我打算在Golang上做一些程序分析,就像pylint,试图从源代码中查找问题。所以我要问的第一个问题是:WhatarethecommonpitfallsspecializedintheGolanguage?我知道Python中有一些,例如数组变量'[]'作为参数,可变对象与不可变对象(immutable对象)。(查看更多here和there)。示例1:>>>defspam(eggs=[]

debugging - go http 服务器和 fasthttp 中的内存泄漏

我的代码是一个简单的fasthttp服务器,就像它的github示例一样但那有一个未知的内存泄漏。然后我试图找到它并清除我的代码,但它又出现了这个问题。然后我只运行了官方示例,甚至出现了内存泄漏(这意味着我观察了Windows进程管理器上的内存使用情况,它使用的内存在负载中增长,并且即使在我的Windows崩溃之前一段时间后也不会释放).然后我通过一个非常简单的helloworld服务器使用了stdnet/http,我又遇到了那个问题。我的内存使用量随着每个请求而增长,而Go不会释放它。我的版本是go1.11.2windows/amd64这是我的代码有这个问题:packagemaini

debugging - 有没有办法为链接到 Go 的 CGO 代码获取调试符号?

我有一些Cgo代码正在链接到我的Go二进制文件中。我已经让Cgo运行并构建我的代码和包装器。在最近的一些更改之后,我开始在我正在链接的C++中获得double-free。我尝试在lldb下运行我的二进制文件,它确实捕获了mallocpanic,但这些符号并不是特别有用。在vanillaC或C++中,我使用-g3来获得丰富的调试符号,其中包括变量名称和源代码。这使得使用lldb的效率更高。但是,我在将这些符号显示在我的go二进制文件中时遇到了一些问题。我注意到在回溯中我的函数显示为main'foo,其中foo是我的函数的名称。虽然没有其他调试信息,但我得到的只是汇编和内存指针/寄存器的踪

debugging - 远程调试 Gogland 停止

我需要有关使用Delve在Gogland中进行远程调试的帮助。我尝试使用IDEGoglang(1.0EAP)和dlv链接在远程服务器上调试我的应用程序:https://github.com/derekparker/delve/安装并尝试远程调试简单程序:packagemainimport"fmt"funcmain(){fmt.Println("helloworld")fori:=uint(0);i首先,在远程主机上启动dlv(控制台输出):$dlvdebug--headless--listen=:2345--log--api-version=2APIserverlisteningat:

debugging - 如何在golang退出前设置断点

我是一个完全的golang初学者,实际上我正在调试别人的程序以找出意外退出的原因。我想知道如何在程序关闭之前调用的“exit”例程处在gdb中设置断点?我已经试过了gdbrunbreak'runtime.goexit'run但它并没有中断,而是退出了。 最佳答案 如果您有权访问源代码,您可以添加一个defer来处理从任意点退出,例如:https://play.golang.org/p/uliAc3j7f-packagemainimport("fmt")funcmain(){deferfunc(){fmt.Println("Place

debugging - 使用 bombardier 进行服务器基准测试 - 但不能添加主体参数

所以,我正在使用bombardier在MacOSSierra上用于从命令行进行服务器基准测试。在此示例中,我使用1个连接和1个请求,以及两个header:“授权”和“内容类型”和正文:“{isTemplate:1}”但是服务器没有接收到正文。./bombardier-c1-n1-mPATCH-H"Authorization:BearerMYBEARERGOESHERE"-H"Content-Type:application/x-www-form-urlencoded"-b"{isTemplate:1}"http://localhost:8082/presentation/6525/up

debugging - 如何在 goland 中调试 revel 应用程序?

我想使用Jetbrain的gogland内置调试​​器调试我的revel应用程序,但gogland运行配置允许设置包或文件运行场景,而不是revelrunmyapp启动的调试过程。 最佳答案 现在Gogland是Goland我找官方manual用于创建调试配置。如果您不介意,我会在这里发布...INTELLIJ调试(戈兰)创建你的项目,对于这个例子,我将使用规范的“revelnewgithub.com/myaccount/my-app”“revelrungithub.com/myaccount/my-app”生成tmp/main.g

cpu 的 golang no/debug/pprof/profile 端点,同时拥有其他一切

我对无法分析我的golang程序的问题感到非常困惑,我在/debug/pprof下有所有其他端点但没有用于CPU分析的/debug/pprof/profile有没有人偶然发现过这样的问题?gotoolpprofhttp://localhost:7778/debug/pprof/profileFetchingprofilefromhttp://localhost:7778/debug/pprof/profilePleasewait...(30s)serverresponse:404NotFound同时/debug/pprof/profiles:19block31goroutine10he

debugging - Elisp 调用具有不同结果的 Go 代码

ThisquestionisonthebackofthisGitHubissue,当执行godef-jump在一些命名导入(但不是全部)的代码上,它失败并出现错误godef:nodeclarationfoundfor.基本上,在调试过程中,我对下一步该去哪里有点困惑。我已经更改了go-mode.el中的代码使用-debug用godef标记,并且输出不同,从CLI是这样成功的:$godef-fmain.gogx.GetPackageRoot/home/tomato/ipfs/src/github.com/whyrusleeping/gx/gxutil/pm.go:50:6而在Emacs中

debugging - gdb 如何在 go 程序中打印 var 的地址?

我成功安装了gdb8.0.1并使其在macosx中运行。调试此程序时,我没有看到key的地址。packagemainfuncmain(){m:=map[string]int{"abc":123,}key:=[]byte("abc")x,ok:=m[string(key)]println(x,ok)}这是我用gdb所做的:gobuild-gcflags"-N"test_append.gogdbtest_append(gdb)b9Breakpoint1at0x104d4b4:file/Users/jiamo/go/src/test/test_append.go,line9.(gdb)cTh