【问题标题】:GoLand IDE: Debug program initiated by shell script (Kubernetes local cluster)GoLand IDE:由 shell 脚本启动的调试程序(Kubernetes 本地集群)
【发布时间】:2020-01-22 00:05:52
【问题描述】:

我是 Kubernetes 的初学者,我试图通过从 GoLand IDE 调试来理解源代码。使用提供的 hack/local-up-cluster.sh 脚本启动集群工作正常,但我无法在 GoLand 中调试。

我尝试编辑Run -> EditConfigurations-> +Shell Script,脚本路径为hack/local-up-cluster.sh,脚本可以成功运行但不会在任何断点处停止。

谁能帮助我如何设置 IDE 来调试由 shell 脚本启动的代码?

【问题讨论】:

  • Kubernetes 是一个非常大的 Go 项目。您提到的 shell 脚本超过 1000 行,在尝试调试时很可能不是正确的起点。选择一个较小的组件进行挖掘可能会更好。选择特定的(较小的)组件,例如 apiserver 或调度程序,并阅读有关如何从那里构建/调试的文档。我发现运营商是一个很好的话题,可以深入了解 k8s golang api

标签: debugging kubernetes goland


【解决方案1】:

如果您不使用 IDE 启动进程,则可以使用 Run | Attach to process 功能将 IDE 调试器附加到现有项目。

确保已编译的应用程序已关闭优化,如果您使用 Go 1.10+,编译器标志为 -gcflags="all=-N -l"

【讨论】:

  • 我修改了 local-cluster-up.sh 中的 make 以包含标志,但“附加到进程”仅显示 etcd 的 pid。它找不到像 kube-apiserver ot kubelet 这样的其他进程。
猜你喜欢
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 2015-12-10
  • 2023-03-28
  • 2015-11-07
  • 2021-03-02
相关资源
最近更新 更多