Eclipse: el depurador no se detiene en el punto de interrupción

Estoy tratando de resolver un problema JUnit. En el código fuente, he establecido el punto de ruptura en dos lugares: 1) en una línea donde se inicializa un miembro estático 2) la primera línea de uno de los casos de prueba.

El depurador se detiene en la línea de inicialización del campo estático. Pero no se detiene en el caso de prueba. No importa dónde establezca el punto de corte en el caso de prueba, el depurador no se detiene allí. Sé con certeza que el caso de prueba se ejecuta, ya que puedo ver que los mensajes de registro que he agregado aparecen en el registro.

Cualquier ayuda sería muy apreciada.

Estoy usando Eclipse Galileo y JUnit4 launcher.

Esto podría estar relacionado con uno de los errores en JDK 6 Actualización 14, como se indica en las notas de la versión para JDK 6 actualización 15 .

Si esto realmente resulta ser el problema, debe pasar a una versión superior del JDK (eso no es garantía, ya que las correcciones se han lanzado contra 6u16, 6u18 y 7b1 ). La mejor opción es usar -XX: + bandera UseParallelGC. Aumentando el tamaño del tamaño mínimo y máximo del montón, para retrasar el primer GC, trae alivio temporal.

Por cierto, use este informe de errores en Eclipse para rastrear cómo les ha ido a otros.

La reparación podría ser tan simple como hacer clic en ejecutar / omitir todos los puntos de interrupción. Trabajó para mi.

Asegúrese de que, en Ejecutar> Configuraciones de depuración, esté seleccionado ‘Detener en main’, si corresponde a su situación.

Por lo general, cuando esto me sucede (raro, pero lo hace) significa que el código que se está ejecutando es diferente del código en el editor. De vez en cuando, para Eclipse ocurrirá que las clases creadas y el código en el editor no estén sincronizados. Cuando eso sucede, obtengo todo tipo de comportamiento extraño de depurador (depuración de líneas vacías, omisión de líneas de códigos, etc.).

Reiniciar Eclipse, limpiar todos los proyectos y reconstruir todo normalmente aclara las cosas. También tenía los plugins de Maven (versiones anteriores … hace tiempo que no los tenía) que también tendían a hacer eso.

De lo contrario, podría ser un error, tal vez el que dijo Vineet,

Espero que esto ayude

Es posible que haya salteado accidentalmente todos los puntos de interrupción en la barra de herramientas de Eclipse. Para solucionar esto, vaya a Eclipse -> Ejecutar -> Omitir todos los puntos de interrupción.

Proyecto -> Clean pareció funcionar para mí en JRE 8

Para JDK7, ejecute -> Configuraciones de depuración, marque “Mantener JUnit ejecutándose después de una ejecución de prueba al depurar”.

Me sucedió una vez, cuando desactivé “Ejecutar> Crear automáticamente” y olvidé volver a verificarlo.

Asegúrate de declarar el paquete en la parte superior. En mi código groovy esto se detiene en los puntos de ruptura:

package Pkg1 import java.awt.event.ItemEvent; isMule = false class LineItem { // Structure defining individual DB rows public String ACCOUNT_CODE public String ACCOUNT_DESC ... 

Esto no se detiene en puntos críticos:

 import java.awt.event.ItemEvent; isMule = false class LineItem { // Structure defining individual DB rows public String ACCOUNT_CODE public String ACCOUNT_DESC ... 

Para depurar el trabajo con control remoto, los archivos java .class se deben cumplir junto con la información de depuración. Si se pasó la opción ” -g: none ” al comstackdor, entonces el archivo de clase no tendrá la información necesaria y, por lo tanto, el depurador no podrá hacer coincidir los puntos de corte en el código fuente con esa clase en remoto. Mientras tanto, si los archivos jar / class estaban ofuscados , entonces tampoco tendrán ninguna información de depuración. De acuerdo con sus respuestas, probablemente este no sea su caso, pero esta información podría ser útil para otras personas que enfrentan el mismo problema.

En mi caso, el problema era que no tenía vista Debug abierta en la perspectiva de depuración, así que:

1 – Asegúrate de tener la perspectiva de depuración abierta:

eclipse depurador no funciona 1

2 – Asegúrate de tener la vista de depuración abierta:

eclipse debugger no funciona 2

Elimine todos los puntos de interrupción y vuélvalos a agregar.

Para eliminar los puntos de interrupción :

  1. Depure su clase como una prueba junit
  2. Cuando el depurador se detiene, haga clic en la pestaña “puntos de interrupción” al lado de “variables” y “expresiones”
  3. En la parte superior derecha de la pestaña de punto de interrupción, haz clic en el botón con dos ‘X’
  4. Detenga la prueba, reemplace su punto de interrupción y ejecute el depurador de nuevo

Un comentario adicional con respecto a la respuesta de Vineet Reynolds.

Descubrí que tenía que establecer -XX: + UseParallelGC en eclipse.ini

Configuro los argumentos vm de la siguiente manera

 -vmargs -Dosgi.requiredJavaVersion=1.7 -Xms512m -Xmx1024m -XX:+UseParallelGC -XX:PermSize=256M -XX:MaxPermSize=512M 

eso resolvió el problema

También verifique si los puntos de interrupción en otras líneas SI funcionan, puede ser un error en el depurador. He tenido un problema con el depurador de Eclipse donde no funcionaba poner un punto de interrupción en una asignación booleana cuyo código estaba en la siguiente línea . Informé de esto aquí , pero hacerlo en la línea anterior o siguiente lo hizo.

Si nada funciona-

  1. Elimine esa configuración de depuración remota / local y cree una nueva.
  2. Agregue el origen en configuraciones de depuración.

Otro posible problema es que el puerto del depurador puede ser bloqueado por el firewall. Por ejemplo, estaba usando mule anypoint studio (v 5.4.3). El puerto del depurador predeterminado es 6666. Cuando se ejecuta un flujo, no se detiene en el punto de interrupción. cuando cambié el puerto a otro (por ejemplo, 8099), funcionó bien.

Vaya a la Right click->Debug Configuration y verifique si se crean demasiadas instancias de depuración. Mi problema se resolvió cuando eliminé varias instancias de depuración de la configuración y la depuración recién comenzada.

Si estás en Eclipse,

Haga clic derecho en su carpeta de proyecto en “Package Explorer”.

Ir a origen -> Limpiar y elegir su proyecto.

Esto limpiará cualquier desorden y su punto de ruptura debería funcionar ahora.

Crear un nuevo espacio de trabajo funcionó para mí.

En mi caso, tuve varios proyectos en el mismo espacio de trabajo. El archivo java que estaba intentando depurar estaba presente en más de un proyecto con el mismo paquete.

No necesitaba el otro proyecto, simplemente cerré proyectos no relacionados (o eliminé el archivo del proyecto no relacionado).

Esto es lo que funciona para mí:

Tuve que poner la dirección de mi servidor local en la configuración del Servidor PHP de esta manera:

enter image description here

Nota : esa dirección, es la que configuro en mi archivo Apache .conf .

Nota : el único punto de interrupción que estaba funcionando fue el “descanso en la primera línea”, después de eso, los puntos de interrupción no funcionaron.

Nota : compruebe las propiedades de xdebug en su archivo php.ini y elimine las que considere innecesarias .