java Eclipse如何在应用服务器中调试代码? 1 年,7 月 Questions & Answers 3242 当我在调试模式下从Eclipse中运行服务器时,Eclipse和我的应用服务器(JBoss)之间正在进行什么通信?这是怎么回事
# 1 楼答案 在调试模式下启动服务器时,它会侦听指定的TCP端口。Eclipse连接到该端口,并使用Java调试线协议(JDWP)进行通信。请阅读此处的详细信息: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/
# 2 楼答案 Eclipse调试从所谓的代理开始 运行虚拟机的JVM。类源代码有一个特性,允许将外部库(用Java或C++编写)注入JVM,就在运行时。这些外部库被称为代理,它们能够修改。类文件已运行。这些代理可以访问JVM的功能,而这些功能在JVM内部运行的常规Java代码中是无法访问的,它们可以用来做一些有趣的事情,比如注入和修改正在运行的源代码、评测等。JRebel等工具利用这一功能来实现它们的魔力 要将代理库传递给JVM,可以通过启动参数,使用 agentlib:libname[=options] format. 我们实际上是在向运行Tomcat的JVM传递一个名为jdwp的代理库。jdwp是jdwp(Java Debug Wire Protocol)的一个特定于JVM的可选实现,用于定义调试器和运行的JVM之间的通信。它的实现(如果存在的话)作为JVM的本机库作为jdwp提供。所以还是jdwp。动态链接库 那么它有什么作用呢? 简单来说,我们传递的jdwp代理基本上是充当运行应用程序的JVM实例和调试器(调试器可以位于远程或本地)之间的链接。因为它是一个代理库,所以它确实能够截获正在运行的代码,在JVM和调试器之间创建一个桥梁,并在JVM上应用调试器的功能。 由于在JVM体系结构中,调试功能不是在JVM本身中找到的,而是被抽象为外部工具(恰当地称为调试器),这些工具可以驻留在运行被调试JVM的本地机器上,也可以从外部机器上运行。正是这种去耦合、模块化的体系结构允许我们在远程机器上运行JVM,并使用JDWP,让远程调试器能够与之通信 简而言之,Eclipse调试器就是这样工作的
# 1 楼答案
在调试模式下启动服务器时,它会侦听指定的TCP端口。Eclipse连接到该端口,并使用Java调试线协议(JDWP)进行通信。请阅读此处的详细信息: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/
# 2 楼答案
Eclipse调试从所谓的代理开始
运行虚拟机的JVM。类源代码有一个特性,允许将外部库(用Java或C++编写)注入JVM,就在运行时。这些外部库被称为代理,它们能够修改。类文件已运行。这些代理可以访问JVM的功能,而这些功能在JVM内部运行的常规Java代码中是无法访问的,它们可以用来做一些有趣的事情,比如注入和修改正在运行的源代码、评测等。JRebel等工具利用这一功能来实现它们的魔力
要将代理库传递给JVM,可以通过启动参数,使用
我们实际上是在向运行Tomcat的JVM传递一个名为jdwp的代理库。jdwp是jdwp(Java Debug Wire Protocol)的一个特定于JVM的可选实现,用于定义调试器和运行的JVM之间的通信。它的实现(如果存在的话)作为JVM的本机库作为jdwp提供。所以还是jdwp。动态链接库
那么它有什么作用呢? 简单来说,我们传递的jdwp代理基本上是充当运行应用程序的JVM实例和调试器(调试器可以位于远程或本地)之间的链接。因为它是一个代理库,所以它确实能够截获正在运行的代码,在JVM和调试器之间创建一个桥梁,并在JVM上应用调试器的功能。 由于在JVM体系结构中,调试功能不是在JVM本身中找到的,而是被抽象为外部工具(恰当地称为调试器),这些工具可以驻留在运行被调试JVM的本地机器上,也可以从外部机器上运行。正是这种去耦合、模块化的体系结构允许我们在远程机器上运行JVM,并使用JDWP,让远程调试器能够与之通信
简而言之,Eclipse调试器就是这样工作的
# 3 楼答案
我认为它被称为JDWP(Java调试有线协议)——阅读更多here