使用 GoClipse 调试 Go 程序:汇编代码与 Go 代码
使用 GoClipse 调试 Go 程序时,您可能会遇到以下情况:即使在设置断点之后,调试器也会逐步执行汇编代码而不是 Go 代码。这通常是由于启动配置选项中的设置不当造成的。
了解调试视图
当您的 Go 程序在调试过程中停止时,Eclipse 中会显示调试视图堆栈跟踪。如果类似于以下内容:
<code class="text">Thread [1] 0 (Suspended : Breakpoint) main() at rt0_windows_amd64.s:15 0x42a400 KERNEL32!BaseThreadInitThunk() at 0x773259ed 0x0 </code>
这表明程序在启动时已自动停止在“main”函数处。但是,这不是 Go“main”函数,而是用 C 编写的内部运行时“main”函数。
解决问题
要解决此问题,检查启动配置选项并找到第一个选项。它可能会显示“默认 main()(运行时/rt0_*)”或“main.main()(源代码入口点)”或类似的内容。
如果它设置为“默认 main()(运行时) /rt0_*)”,将其更改为“main.main()(源代码入口点)”。或者,您可以简单地取消选中该选项。
进行必要的更改后,单击“运行/恢复”(F8) 继续调试。调试器现在将单步执行您的 Go 代码而不是汇编代码。
以上是如何使用 GoClipse 调试 Go 程序:汇编代码与 Go 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!