【问题标题】:How remote debugging is implemented in general远程调试一般是如何实现的
【发布时间】:2011-06-10 07:55:58
【问题描述】:

我使用从 JDeveloper 到 Weblogic 服务器的远程调试已经有一段时间了,发现它非常有用。但我有兴趣了解如何从技术上实现远程调试。

当我在调试服务器的远程机器上进行任何 java 代码更改并在 jdeveloper 中重建类时,代码更改会自动获取服务器。这是怎么发生的?该工具是否将网络上编译好的java类发送到服务器?

谁能分享任何解释远程调试技术的文档/链接。

感谢和问候, 哈里什

【问题讨论】:

    标签: remote-debugging


    【解决方案1】:

    不确定您是在询问远程调试一般情况,还是您所描述的特定工具。

    我对Java/jdeveloper了解不多,但是总的来说远程调试的工作原理如下:

    • 在目标机器上,一个特殊的服务器进程挂接到您要调试的可执行文件,就像在本地运行的调试器一样。该服务器不必知道符号和源代码,只需运行可执行文件即可。使用系统命令,它可以要求它停止并检查其内存空间。
    • 在主机上,调试器本身运行,并且还具有可执行文件及其源代码的副本。调试器使用某种协议(TCP/IP 或嵌入式设备的串行协议)与目标机器上的服务器通信,并要求它单步执行,检查它从可执行文件中的调试信息中知道的某些内存位置,可以显示正在调试给用户的源代码等。

    例如,阅读gdbserver,这可能是目前最流行的远程调试服务器。

    希望这会有所帮助:)

    【讨论】:

    • 谢谢。我不是在寻找任何特定的工具。相反,我想大致了解它是如何工作的。
    • 那么当我修改后编译源代码时,它是否通过网络将编译好的类文件发送到服务器?这是远程服务器获取 java 代码更改的方式吗?
    • @Harish:这是一种可以实现的方式,当然。但恕我直言,这些并不是有趣的 实现细节。将调试器分离成两个通信实体的概念更有趣
    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多