当前位置: 首页 > news >正文

Go保留符号表定位panic

去掉 -w -s 后,panic 堆栈信息会完整很多,跟踪起来更容易。
对比效果
带 -w -s(去掉符号表)的 panic
panic: runtime error: index out of range [5] with length 3

goroutine 1 [running]:
main.main.func1.2
<autogenerated>:1 +0x25
main.main.func1
<autogenerated>:1 +0x45
main.main
<autogenerated>:1 +0x85

去掉 -w -s(保留符号表)的 panic
panic: runtime error: index out of range [5] with length 3

goroutine 1 [running]:
github.com/leijmdas/godi.(*Container).resolveDependency(0xc0000a2000, {0x1234567, 0x89abcde})
/home/user/project/godi/container.go:142 +0x2a5
github.com/leijmdas/godi.(*Container).Inject(0xc0000a2000, {0x7654321, 0x1fedcba})
/home/user/project/godi/container.go:89 +0x145
main.main()
/home/user/project/cmd/server/main.go:34 +0x85

关键差异
信息 带 -w -s 去掉后
包路径 ❌ 缺失或 <autogenerated> ✅ github.com/leijmdas/godi
函数名 ❌ 可能被截断/混淆 ✅ (*Container).resolveDependency
文件名 ❌ 无或 <autogenerated> ✅ container.go
行号 ❌ 无 ✅ :142
可 pprof 分析 ❌ 否 ✅ 是
实际建议
# 开发/测试/预发环境:一定保留
go build -o myapp main.go

# 生产环境:推荐保留,除非体积是硬约束
go build -o myapp main.go

# 只有对体积极度敏感时,才去掉
go build -ldflags="-w -s" -o myapp main.go

补充:即使去掉 -w -s,也可用 objdump 救急
如果二进制已经去掉了符号表,但线上出了 panic,可以:
# 用相同源码重新编译一个带符号的版本
go build -gcflags="all=-N -l" -o myapp.debug main.go

# 用 addr2line 或 go 工具映射地址到源码
go tool addr2line myapp.debug < 0x2a5

结论:对于你的 Go 全家桶项目(godi、goconfig 等),建议生产环境也保留符号表,panic 排查效率高很多,现代服务器不差那几 MB。

http://www.jsqmd.com/news/962237/

相关文章:

  • IQ信号与差分信号:从原理到PCB设计的实战解析
  • Visual Studio Code Git Graph:重新定义Git可视化工作流的高级实践指南
  • CRC32查表算法深度优化:从256表压缩到16表的内存与性能权衡
  • 26年崇左市黄金回收靠谱门店推荐 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式推荐 - 奢金阁
  • 如何高效掌握开源3D打印切片软件:Slic3r完整使用指南
  • 告别手动换算!用ArcGIS Pro快速将Excel里的经纬度表格变成地图点(附WGS84/2000坐标系选择指南)
  • 白山黄金回收白银回收铂金回收去哪卖?5 家实地探访靠谱门店汇总 2026 - 中业金奢再生回收中心
  • 2026杭州包包回收攻略|浙系奢包行情解读+六大实体门店实测分享 - 薛定谔的梨花猫
  • Fast-GitHub:让国内GitHub访问速度提升10倍的终极解决方案
  • Netease Cloud Music Downloader:3步打造你的完美个人音乐库
  • MATLAB一键运行的EMD/EEMD/CEEMDAN信号分解与去噪实操包(含双实测数据+主流程脚本)
  • 从0到1:使用tower-web框架开发你的第一个Hello World应用
  • OpenCore Legacy Patcher终极指南:让老旧Intel Mac重获新生,体验最新macOS系统
  • 26年大理白族自治州黄金回收靠谱门店推荐 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式推荐 - 奢金阁
  • 揭秘华为健康数据转换:专业开发者的完整实战指南
  • 如何用文本快速创建专业图表?Mermaid Live Editor免费在线图表编辑器指南
  • RePKG终极教程:Wallpaper Engine资源提取与转换完整指南
  • LangChain中LLM参数的物理意义与实战调优指南
  • 计算机专业学生选错方向怎么办,AI 大模型课程实测避坑指南
  • 2026 机架式精密配电单元优选公司推荐榜单:五大优质 PDU 厂商实力测评与采购参考
  • 告别繁琐手动配置:用快马平台ai智能生成mysql最优配置方案,效率提升十倍
  • 从印度工程师培养体系看工程师核心竞争力:数学思维、系统思考与有效沟通
  • moment.php性能优化:处理大量日期数据的高效方法终极指南
  • 终极指南:如何让你的10美元鼠标在macOS上比苹果触控板更强大
  • 26年大同市黄金回收靠谱门店推荐 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式推荐 - 奢金阁
  • Keyviz终极指南:免费开源键鼠可视化神器让操作清晰可见
  • SMA、SMB、SMC封装二极管选型指南:从尺寸、功率到应用场景全解析
  • 为什么BufferTextInputLayout是Android开发者的必备工具?
  • 2026杭州手表回收哪家靠谱?正规高价名表变现避坑全攻略 - 薛定谔的梨花猫
  • 2026年6月许昌装修哪家好排行推荐:品质家装优选 - 谁都没有我好看