当前位置: 首页 > 面试题库 >

Eclipse Java远程调试器通过VPN极其慢

公良弘毅
2023-03-14
问题内容

有时我不得不离开办公室工作,这意味着我需要通过VPN进入实验室。我注意到在这种情况下使用Eclipse进行远程调试的速度非常慢。慢到调试器将5-7分钟连接到远程jvm的程度。连接后,每次执行断点/断行可能需要20到30秒,而且通常只是断开连接,这使我不得不重新开始。

即使没有可用的解决方案,任何人都可以解释为什么会这样吗?考虑到远程调试器的行为,我通过VPN的延迟几乎不会达到预期。我在VPN上以最小的延迟/阻塞进行了其他各种操作。

当基本上所有其他网络操作都很好时,我真的很难理解为什么远程调试器会受到VPN的困扰。

谢谢,


问题答案:

伙计们,感谢您的帮助。幸运的是,我的一位遇到同样问题的同事对它进行了深入研究。从我同事的来信:

“我成立了一个代理我的Eclipse和我的VM之间坐在其打印出来的命令代码从JDWP包我的Eclipse被发送到我的虚拟机。
http://docs.oracle.com/javase/8/docs/platform/jpda/jdwp /jdwp-
protocol.html
页面向我解释了这些命令的含义,我看到的是:每次我单步执行代码时,Eclipse都会向VM发送数十个与“线程监视器”相关的命令,它们与以下VM相关。功能:canGetMonitorInfo,canGetCurrentContendedMonitor,canGetOwnedMonitorInfo,canGetMonitorFrameInfo”

这些能力导致了疯狂的滞后。他已经制定出了一种强制禁用这些功能的解决方案,并且调试器的可用性猛增。显然,远程调试器的线程监视功能不再起作用,但是考虑到以前远程调试的不可用性,这是一个很大的折衷。

我将尝试找出他到底做了什么来禁用线程监视器功能。



 类似资料:
  • 问题内容: 我有一个包含以下内容的Dockerfile: 我的docker-compose.yml看起来像这样: 当我执行 docker-composer时, 我看到一条消息“正在 侦听地址为5005的传输dt_socket ”。但是,当我尝试与jdb或Idea连接时,出现“ java.io.IOException:握手失败-连接过早关闭 ”。 如果我将 openjdk:9 更改为 openjdk

  • > 停止防火墙服务: 服务firewall_service停止 将进程附加到gdbserver 当我尝试通过在主机框上运行'target remote remote_ip:remote_port'来启动主机上的调试时,我得到一个'connection timedout'错误。 你们能看到我做错了什么吗,任何需要检查的东西,或者通过ssh远程调试的替代方法吗?我将不胜感激。谢谢

  • ThinkPHP5.0版本开始,提供了Socket日志驱动用于本地和远程调试。 Socket调试 只需要在配置文件中设置如下: return [ 'type' => 'socket', 'host' => 'slog.thinkphp.cn', //日志强制记录到配置的client_id 'force_cl

  • 我有一台linux机器(比如m1)[一台openStack机器]来运行我的jmeter测试。我的典型过程是将最新的jmx文件放在这台机器上,并在以下命令下触发:nohup/path/to/jmeter/bin/jmeter-n-t/path/to/script/test。jmx-l/path/to/resultsFolder/results。jtl 现在,我想通过jenkins作业触发相同的测试,

  • 前言 在通过串口调试嵌入式设备时,每次需要通过接线和 USB 转换器连接才能进行,对设备操作的话,存在一定的不便,并且会占用电脑的 USB 口,接线也会造成一定的不稳定,因此可以通过串口命令开启 telnet 或者 ssh 服务,远程登陆设备。通过系统命令、程序的输出以及 gdb 进行 远程调试,提高调试的便捷性。 调试案例 某路由器溢出漏洞调试 在 2.3.1 章节中对漏洞进行静态分析,现在来动