草庐IT

debug-print

全部标签

debugging - 如何调试 gRPC-Go 服务?

使用gRPC-Go无疑是构建弹性、高性能和可扩展分布式系统的好方法。我不太明白的是如何实际调试用它编写的服务。另外,HTTP/2是唯一的吗wireprotocol支持吗? 最佳答案 不确定您是否找到了解决方案...但是根据您的应用程序中有多少服务,您可以使用分布式跟踪系统来记录服务之间的调用。其中一些系统包括:齐普金(http://zipkin.io/)小巧玲珑(https://research.google.com/pubs/pub36356.html)耶格(https://uber.github.io/jaeger/)如果您使用

debugging - 为什么我的 Go 调试器不加载所有符号,导致调试器中缺少局部变量?

我已经构建了我的二进制文件:gobuild-gcflags"$gc_flags"-o./bin/grafana-server./pkg/cmd/grafana-server,其中$gc_flags是'-N-l'。当我运行此文件./bin/grafana-server并在我的调试器(Goland)中附加到它时,并非我的所有符号都已加载。此外,一些断点显示消息:nocodeat/Users/.../file.go:186我想调试的代码如下:我添加到原始项目的部分是186-199行。可以看到,执行进入了for_,..循环(第196行),说明query有数据,我们可以拉取通过repo.Find

debugging - 打印 golang 结构时如何忽略 String() 方法?

我有一个golang结构体,并创建了一个String()方法用于程序的正常运行。我现在想查看结构的全部内容。我尝试了通常的%+v格式,但它似乎使用了String()方法,而不是向我显示所有字段。如何输出原始结构数据?示例:https://play.golang.org/p/SxTVOtwVV-9packagemainimport("fmt")typeFoostruct{JekylstringHydestring}func(fooFoo)String()string{returnfoo.Jekyl//howIwantittoshowintherestoftheprogram}funcma

戈朗 : how to print data from running goroutine at fixed intervals?

我在理解golang中的channel时遇到了一些问题。据我所知,channel是在给定时间间隔内将数据发布到控制台的正确方式。假设我有一个正在工作的goroutine,然后在我的主循环中我想每秒从那个goroutine打印数据。如何编写这样的代码?一个简单的例子将不胜感激。 最佳答案 您可以在内存中拥有一些protected共享状态,您可以从长时间运行的进程中更新这些状态。然后你有一个计时器每秒触发一次共享状态检查。这是一个简单的例子:http://play.golang.org/p/gfGvhHUWIc代码:packagemai

image - 戈朗 : print text in the image

我正在尝试使用下一个包"image/draw""image""image/jpeg"但我希望有可能在我的图像中打印任何文本或数字(也可以是文本)。但从Go中的方框来看,似乎没有什么可以做到这一点。谁能帮我解决这个问题? 最佳答案 我只找到了这个,freetype-go是否有最好且唯一的库可以满足我的需求? 关于image-戈朗:printtextintheimage,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

debugging - 如何在 Delve 中通过源文件行号设置断点?

标题几乎说明了一切。我知道如何设置的唯一方法是在程序运行期间或在breakpointmain.main之前有没有一种方法可以通过行号来做到这一点,比如breakpoint./otherfile.go:200? 最佳答案 在你的源代码类型中runtime.Breakpoint()在CLI中输入dlvtest然后continue程序将在您设置断点的代码行处停止。 关于debugging-如何在Delve中通过源文件行号设置断点?,我们在StackOverflow上找到一个类似的问题:

html - Go:你会如何 "Pretty Print"/"Prettify"HTML?

在Python、PHP和许多其他语言中,可以转换html文档并对其进行“美化”。在Go中,使用MarshIndent函数可以很容易地为JSON和XML(来自结构/接口(interface))完成此操作。Go中的XML示例:http://play.golang.org/p/aBNfNxTEG1packagemainimport("encoding/xml""fmt""os")funcmain(){typeAddressstruct{City,Statestring}typePersonstruct{XMLNamexml.Name`xml:"person"`Idint`xml:"id,at

printing - 如何打印到实际打印机?

我有一个用Go编写的消息传递服务器。现在我有一个需求,有些消息需要服务器打印在纸上。我如何在Go中实现它?我真的很难找到关于这个主题的任何东西。该应用程序将在Windows机器上运行,并且需要能够以固定宽度的字体打印UTF8编码的文本。因此不需要花哨的格式(粗体文本、颜色等)。我对如何解决这个问题一无所知...有人可以为我阐明这一点并为我指明正确的方向吗? 最佳答案 使用@abalos和@alex的回答,我能够按照我需要的方式运行它。回答这个问题以提供如何使用它的示例-使用alex的库非常简单:importprt"github.co

debugging - 如何检查失败的 `docker build` 的文件系统?

我正在尝试为我们的开发过程构建一个新的Docker镜像,使用cpanm安装一堆Perl模块作为各种项目的基础镜像。在开发Dockerfile时,cpanm会返回失败代码,因为某些模块没有安装干净。我很确定我需要apt来安装更多东西。我的问题是,我在哪里可以找到输出中引用的/.cpanm/work目录,以便检查日志?在一般情况下,如何检查失败的dockerbuild命令的文件系统?早上编辑在咬紧牙关运行find我发现/var/lib/docker/aufs/diff/3afa404e[...]/.cpanm这可靠吗,还是我最好构建一个“裸”容器并手动运行东西,直到我拥有所有我需要的东西?

debugging - 如何检查失败的 `docker build` 的文件系统?

我正在尝试为我们的开发过程构建一个新的Docker镜像,使用cpanm安装一堆Perl模块作为各种项目的基础镜像。在开发Dockerfile时,cpanm会返回失败代码,因为某些模块没有安装干净。我很确定我需要apt来安装更多东西。我的问题是,我在哪里可以找到输出中引用的/.cpanm/work目录,以便检查日志?在一般情况下,如何检查失败的dockerbuild命令的文件系统?早上编辑在咬紧牙关运行find我发现/var/lib/docker/aufs/diff/3afa404e[...]/.cpanm这可靠吗,还是我最好构建一个“裸”容器并手动运行东西,直到我拥有所有我需要的东西?