You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang net/http/pprof包中使用pprof.Symbol端点?

使用Golang net/http/pprof的Symbol端点

/debug/pprof/symbol 端点的核心作用是把内存地址解析为对应的程序符号信息(函数名、源码位置等),常用于分析堆快照、goroutine栈追踪里的未知地址。它支持GET和POST两种请求方式,具体用法如下:

GET方法使用

  • 通过URL的sym参数传递要解析的地址,多个地址用逗号分隔,地址可以是十进制或带0x前缀的十六进制格式。
  • 示例命令:
curl "http://localhost:6060/debug/pprof/symbol?sym=0x45a8d0,0x45b210"
  • 返回结果示例:
0x45a8d0 runtime.main /usr/local/go/src/runtime/proc.go:250
0x45b210 runtime.gopark /usr/local/go/src/runtime/proc.go:363

POST方法使用

  • 当需要解析大量地址时,POST方式更高效,将每个地址单独一行放在请求体中发送。
  • 示例命令:
curl -X POST -d $'0x45a8d0\n0x45b210' http://localhost:6060/debug/pprof/symbol
  • 返回格式和GET一致,每个地址对应一行符号信息。

注意事项

  • 确保你的Go服务已经隐式导入net/http/pprof包(通常写_ "net/http/pprof"),这样pprof的handler才会被注册到默认的http服务中,同时服务要监听一个可访问的端口(比如6060是pprof常用端口)。
  • 如果传入的地址没有对应的符号信息,会返回??占位,示例:
0x123456 ?? ??:0
  • 生产环境部署时,要做好pprof端点的权限控制,避免未授权访问带来的安全风险。

内容的提问来源于stack exchange,提问作者Zhasulan Berdibekov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:15:29