当前位置: 首页 > 网络应用技术

使用Delve调试远程GO应用程序详细过程

时间:2023-03-08 22:00:23 网络应用技术

  Delve是GO语言的调试器。它的目标是为GO语言提供简单的使用和完整的调试工具。

  对于安装,请参考此处。

  使用命令验证安装是否成功:

  在实际项目中,Delve可以促进我们在本地部署在远程GO应用程序中,但是为了使Delve的调试器正常工作,必须避免在施工过程中避免一些信息,以避免编译器或链接器进行优化。通过添加参数来实现。。

  为了确保调试期间运行的实际代码与源代码相同,需要以下命令构建一个应用程序以禁止编译器在编译时优化代码。

  GO Build可以将参数传递给GO编译器,即传递到传递的参数,因此您可以检查所有可用的参数。指示所有软件包-N和-L的编译应用程序。

  您可以看到-n和-l的角色:

  使用-m可以查看编译器优化决策。

  Delve不会强行禁用编译器优化,但这可能会导致实际操作代码匹配与源代码不匹配的源代码。然后,不匹配代码的这一部分(例如内部关节优化的代码)不能进行调试。生产环境对性能很敏感,并且不应轻易放弃优化策略。

  此外,我们通常在构造发行程序包时添加LDFLAGS参数:.ldflags将参数传达到链接中,以将可执行文件的量减少近20%。

  观看-w和-s。

  应该注意的是,Delve依赖于矮化信息,因此,如果要使用Delve进行调试,则不能使用-W参数。

  Delve提供了许多本地应用程序调试功能。此外,Delve还允许我们从远程连接到其调试器,提供本地调试远程应用程序的能力。

  Delve有两种直接运行的方法。一个是在应用程序根目录(main.go)下直接在调试模式下启动应用程序,它将在启动后进入Delve的交互模式。

  输入帮助以查看所有可用命令,输入退出并终止程序。

  另一个是运行可执行文件:

  构建并启动Web服务。

  DLV附着于演示应用,PID为17062。

  上述方法在本地进行调试。基本逻辑是首先启动应用程序,然后启动Delve的调试器,然后让调试器附加到应用程序过程。

  为了能够将调试器从远程控制界曝光到网络中,请指定远程连接的端口,从远程连接到调试器使用的API版本以及其他参数。从遥控器中,只需将以下参数添加到DLV命令:

  Delve支持多个编辑器以供参考。

  以下是Goland。

  创建配置。

  连接调试器。