¿Qué comunicación ocurre entre Eclipse y mi servidor de aplicaciones (JBoss) cuando ejecuto el servidor desde Eclipse en modo de depuración? ¿Como funciona esto?¿Cómo funciona Eclipse para depurar código en un servidor de aplicaciones?
Respuesta
Al iniciar el servidor en modo de depuración, se escucha en un puerto TCP especificado. Eclipse se conecta a ese puerto, y hablan usando Java Debug Wire Protocol (JDWP). Lea los detalles aquí: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/
creo que se llama JDWP (Wire Protocol depuración de Java) - leer más here
La depuración de Eclipse comienza con lo que se conoce como Agentes.
La JVM, que ejecuta las fuentes compiladas .class, tiene una función que permite que bibliotecas externas (escritas en Java o C++) sean inyectadas en la JVM, solo en tiempo de ejecución. Estas bibliotecas externas se denominan Agentes y tienen la capacidad de modificar el contenido de los archivos .class que se han ejecutado. Estos agentes tienen acceso a la funcionalidad de la JVM a la que no se puede acceder desde un código Java común que se ejecuta dentro de la JVM y se pueden usar para hacer cosas interesantes como inyectar y modificar el código fuente en ejecución, crear perfiles, etc. Herramientas como JRebel utilizan esta pieza de funcionalidad para lograr su magia.
Y para pasar una Lib agente a una JVM, lo hace a través de argumentos de puesta en marcha, mediante el
agentlib:libname[=options] format.
En realidad estábamos pasando un jdwp llamado Agente Lib a la JVM que ejecuta Tomcat. El jdwp es una implementación JVM específica y opcional del JDWP (Java Debug Wire Protocol) que se utiliza para definir la comunicación entre un depurador y una JVM en ejecución. Su implementación, si está presente, se proporciona como una biblioteca nativa de la JVM como jdwp.so o jdwp.dll
Entonces, ¿qué hace? En términos simples, el agente jdwp que pasamos básicamente cumple la función de ser un enlace entre la instancia de JVM que ejecuta una aplicación y un depurador (que puede ubicarse remota o localmente). Dado que es una Biblioteca de agentes, tiene la capacidad de interceptar el código en ejecución, crear un puente entre la JVM y un depurador, y tener la funcionalidad de un depurador aplicado en la JVM. Dado que en la arquitectura JVM, la funcionalidad de depuración no se encuentra dentro de la JVM pero se abstrae en herramientas externas (que se conocen como depuradores), estas herramientas pueden residir en la máquina local ejecutando la JVM que se está depurando o ser ejecutar desde una máquina externa. Es esta arquitectura modular desacoplada la que nos permite tener una JVM ejecutándose en una máquina remota y usando el JDWP, tener un depurador remoto capaz de comunicarse con ella.
Así es como funciona el depurador Eclipse.
- 1. Cómo usar Eclipse para depurar código JNI (Java y C++)
- 2. Cómo depurar el código compilado de Java en Eclipse
- 3. Cómo depurar aplicaciones Web2py?
- 4. ¿Cómo puedo depurar un Doclet en Eclipse?
- 5. ¿Hay alguna manera de depurar aplicaciones web usando Eclipse?
- 6. ¿Cómo depurar las aplicaciones wxpython?
- 7. Cómo depurar en un dispositivo real (usando Eclipse/ADT)
- 8. Depurar JavaScript en Eclipse
- 9. ¿Consejos o herramientas para depurar aplicaciones Spring?
- 10. No se puede depurar el código Mockito/JUnit en Eclipse, funciona bien con solo JUnit
- 11. Cómo depurar archivos .class en ECLIPSE?
- 12. depurar un gran ciclo en eclipse
- 13. ¿Cómo puedo depurar fallas silenciosas en aplicaciones Java?
- 14. depurar proyecto de archivo en eclipse
- 15. ¿Cómo depurar las aplicaciones Java Web Start?
- 16. Cómo depurar un punto muerto en Java usando Eclipse
- 17. Cómo depurar aplicaciones PyQt sin relanzar?
- 18. Cómo depurar aplicaciones en Amazon Kindle Fire con Eclipse en Mac?
- 19. ¿Cómo depurar en el código de AutoMapper?
- 20. ¿Cómo puedo depurar aplicaciones en Java Web Start (JNLP)?
- 21. Usar servidor web IIS local para depurar
- 22. Depurar eclipse IDE en sí
- 23. ¿Cómo depurar el código de Haskell?
- 24. Enhebrado en un servidor de aplicaciones
- 25. ¿Cómo depurar correctamente Java (Android) usando Eclipse?
- 26. ¿Depurar PHP con Eclipse?
- 27. Herramientas disponibles para depurar problemas de producción en aplicaciones Java
- 28. Código fuente para aplicaciones de Android?
- 29. cómo depurar código nativo puro en android?
- 30. Cómo depurar código nativo de Android en un dispositivo real