Go 如何使用Delve检查核心转储的内存区域?

Go 如何使用Delve检查核心转储的内存区域?,go,gdb,delve,Go,Gdb,Delve,给定Go服务的核心转储,Delve上是否有任何可以检查内存区域的命令? 我们正在试图找出占用堆的内容。上次我遇到类似问题时,我发现了这个小程序包。它允许获取堆的直方图&检查崩溃之前您有多少特定类型的对象 不幸的是,它不能开箱即用,您必须应用一些在“拉入请求”页面上找到的修复程序为什么不做一个内存配置文件?它正在建造中go@Pizzalord不幸的是,我们没有在生产中公开端点的pprof,所以我们只能依靠核心转储进行事后分析。非常酷的工具!但是你知道为什么我在运行“直方图”时会得到一堆“unk”对

给定Go服务的核心转储,Delve上是否有任何可以检查内存区域的命令?
我们正在试图找出占用堆的内容。

上次我遇到类似问题时,我发现了这个小程序包。它允许获取堆的直方图&检查崩溃之前您有多少特定类型的对象


不幸的是,它不能开箱即用,您必须应用一些在“拉入请求”页面上找到的修复程序

为什么不做一个内存配置文件?它正在建造中go@Pizzalord不幸的是,我们没有在生产中公开端点的pprof,所以我们只能依靠核心转储进行事后分析。非常酷的工具!但是你知道为什么我在运行“直方图”时会得到一堆“unk”对象吗?例如:“unk1152”、“unk704”、“unk288”等。请告知是否有办法解释这些对象。更新:似乎这些是指“未知”,不知道是否有任何方法可以提高这些对象的“可读性”,unk1152表示未知类型,1152表示实例的大小。不幸的是,我不知道如何在这种特殊情况下改进“类型检测”(我找到了一些解决方法,我使用
objects
命令列出所有活动对象,获取其中一个“unk”的地址键入,然后执行
可访问的操作
。它可以打印某些文件位置。可能需要在不同的地址上多次运行此操作以确认查找结果,这很耗时,但很有效)很好,下次请记住这一点。谢谢分享!