为了账号安全,请及时绑定邮箱和手机立即绑定

无法调试 golang 应用程序深入研究,因为错误:无法附加到 pid XXX:无法打开调试信息

无法调试 golang 应用程序深入研究,因为错误:无法附加到 pid XXX:无法打开调试信息

Go
繁星淼淼 2022-08-15 10:10:40
所以我想调试一个在k8s集群上运行的golang应用程序,但是当我想附加到应用程序时,我收到错误消息。在 k8s 部署中,我添加了所需的权限:    securityContext:    capabilities:      add:        - SYS_PTRACE    privileged: true    runAsUser: 0    allowPrivilegeEscalation: true我用所需的 gcflags “all=-N -l” 编译了我的应用程序go build -mod vendor -gcflags "all=-N -l" --ldflags -w -s -o app我用以下命令开始 pod:dlv --listen=:40000 --headless=true --api-version=2 --accept-multiclient exec /app我验证了我运行正确的容器映像,它是我推送的相同SHA哈希。我验证了哈希值在这里也匹配的正确二进制文件。我设置:echo 0 > /proc/sys/kernel/yama/ptrace_scopecat /proc/sys/kernel/yama/ptrace_scope0下面是二进制文件的输出。readelf -S app
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您将作为标志传递给链接器。-s -w

根据cmd/link的文档

-s:省略符号表和调试信息。

-w:省略矮人符号表。

简而言之,生成命令将删除调试器调试所需的信息。

如果删除(或仅删除 ),它应该按预期工作。-ldflags-s -w


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号