使用 Mozilla rr 调试
Mozilla rr 会记录程序执行过程,以便在调试器中重放,并多次调查同一事件序列。
要调试录制内容,请等待应用程序退出,或在 调试 工具窗口中点击 停止录制。 然后可以检查记录的执行过程,并在断点之间向前或向后移动。
使用 Mozilla rr 调试代码
安装 Mozilla rr。 有关安装说明,请参阅 Building And Installing。
在 GoLand 设置断点。 要设置断点,请点击目标代码行附近的空白处,代码执行将在此停止。 有关断点的更多信息,请参阅 调试 和 断点。
点击装订区域处的 运行 图标 (
),然后选择 记录和调试<configuration_name>。 录制完成后,在 调试 工具窗口中检查变量和 goroutine。
通过录制的跟踪文件导航
请导航至 。
在 跟踪目录 字段中,指定跟踪目录的路径。
点击 确定。
在 调试 工具窗口中,点击 恢复程序 前进到下一个断点,或点击 回退 后退到上一个断点。
收集 Mozilla rr 追踪
在应用程序目录中,构建禁用了优化和内联的可执行文件:
go build -gcflags="all=-N -l" -o myApp在可执行文件中保留调试信息。 请勿使用
-w或-s等会移除调试器所需信息的链接器标志。打开终端并运行以下 Mozilla rr 命令:
rr record <path_to_the_application_executable>因此,Mozilla rr 跟踪文件将出现在以下文件夹中: ~/.local/share/rr/<executable_name>
使用 Mozilla rr 远程调试
在远程机器上, 收集 Mozilla rr trace。
在远程计算机上,使用环回监听器启动 Delve:
dlv --headless --api-version=2 --listen=127.0.0.1:2345 replay /path/to/trace/dir将 /path/to/trace/dir 替换为记录的跟踪目录。
在本地计算机上,通过 SSH 转发调试器端口:
ssh -N -L 2345:127.0.0.1:2345 user@remote-host将
用户和remote-host替换为 SSH 用户名和远程计算机的地址。 调试期间保持连接打开。 Delve 连接未经身份验证;请勿公开调试器端口。在本地机器上创建 远程编程 运行/调试配置。 将 主机 设置为
127.0.0.1,并将 端口 设置为2345。 有关创建运行/调试配置的更多信息,请参阅 创建运行/调试配置。在本地机器上,请确保从配置列表中选择了 远程编程 运行/调试配置。
在本地计算机上,点击 。 或者按 Shift+F9。