首页 >后端开发 >Golang >为什么使用 GoClipse 调试时看到的是汇编代码而不是 Go 代码?

为什么使用 GoClipse 调试时看到的是汇编代码而不是 Go 代码?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-23 22:49:30729浏览

Why Am I Seeing Assembly Code Instead of Go Code When Debugging with GoClipse?

使用 GoClipse 调试 Go 程序:用汇编代码代替 Go 代码问题

使用 GoClipse 调试 Go 程序时,可能会遇到以下情况:即使在 Go 程序行上设置了断点,调试器也会逐步执行汇编代码而不是 Go 代码。如果您尚未安装所需的 GNU 调试器 (gdb),则可能会出现此问题。

要解决此问题,您可以按照您提到的通过 HomeBrew 安装 gdb 的说明进行操作。但是,安装 gdb 后,您可能仍然会遇到相同的问题。

调查 Debug 视图

出现此问题时,请检查 Debug 视图。如果它显示以“main”函数开头的堆栈跟踪,后跟 macOS 系统的 rt0_darwin_amd64.s 中的行号(Windows 系统的 rt0_windows_amd64.s),则表明调试器已在内部运行时“main”上自动停止” 函数,用 C 编写。

调整启动配置选项

要解决此问题,请转到启动配置选项。第一个选项控制程序是否应在此内部“main”函数上停止。您可以将其更改为“main.main”以在 Go main 函数处停止,或者完全取消选中该选项以禁用运行时“main”函数上的自动停止。

调整启动配置选项后,您应该能够在不单步执行汇编代码的情况下调试 Go 程序。单击运行/恢复 (F8) 继续调试。

以上是为什么使用 GoClipse 调试时看到的是汇编代码而不是 Go 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn