En un método que estoy depurando, estoy generando un nuevo hilo. Necesito depurar la ejecución de este nuevo hilo en lugar del hilo padre. ¿Cómo puedo hacer esto en eclipse?Depuración de varios hilos en eclipse
Respuesta
Ponga un punto de interrupción en el método "ejecutar" del nuevo hilo. Eso detendría la ejecución una vez que comience el hilo.
Además de la respuesta de Shamit Verma:
Cuando se trata de depurar aplicaciones multi-hilo, es mejor no utilizar puntos de corte estándar que suspenden sólo el hilo donde se establece el punto de interrupción. La definición de un punto de interrupción estándar en su aplicación solo romperá el hilo relacionado. Los otros hilos seguirán ejecutándose. En el depurador de eclipse, por algún motivo, el depurador omitirá los puntos de interrupción si ya se han iniciado otros subprocesos.
La solución:
definir un punto de interrupción en el hilo deseada (@ método Run() i espero ..), haga clic derecho en el punto de ruptura -> propiedades de punto de interrupción.
En el diálogo de propiedades de punto de interrupción, marque "Suspender VM" en lugar de "Suspender hilo".
Si te gusta, se suspenderá toda tu máquina virtual en caso de que se alcance un punto de interrupción.
Esta es una muy buena información, gracias Erik! –
+1 por la información, estoy sorprendido de cómo esta respuesta tiene solo 9 votos –
Desafortunadamente, "Suspender VM" no está disponible al depurar el código C/C++. Estoy intentando depurar una aplicación nativa de Android y la pérdida continua de foco en otros hilos me está volviendo loco. sigue buscando una solución ... – martinako
Además de la respuesta de Erik Kaju. Si está depurando CDT (esto podría ser aplicable para Java, así, no estoy seguro de eso), entonces
- Deja un punto de interrupción en el método run() (o su equivalente). O cualquier punto en el que esté seguro de que se están ejecutando los subprocesos necesarios y el subproceso no requerido (los que el filtro eliminará).
- Inicia la sesión de depuración.
- Cuando se alcanza el punto de interrupción en la ejecución, puede ir a otro punto de interrupción, habilitar ese punto de interrupción si se deshabilitó. A continuación, haga clic con el botón derecho en el punto de interrupción -> vaya a Filtros, ahora puede seleccionar el hilo para el que desea que el punto de interrupción permanezca habilitado y puede desmarcar el resto de los hilos. Entonces, este punto de interrupción solo será afectado por ese hilo en particular.
El inconveniente es que este procedimiento debe repetirse para cada sesión de depuración. Si alguien puede proporcionar atajos para ello, sería bueno.
- 1. Cómo identificar hilos en la perspectiva de depuración de Eclipse?
- 2. Varios hilos de disqus en una página
- 3. depuración remota en Eclipse
- 4. El rastreo de depuración de Node.js parece implicar varios hilos de ejecución: ¿cómo interpretar esto correctamente?
- 5. Depuración de JBoss en Eclipse
- 6. depuración de hormigas en eclipse
- 7. ¿Distribuye hilos Java en varios servidores?
- 8. Aplicación de varios hilos de Data Core
- 9. Depuración Aplicación FuseESB en Eclipse
- 10. Ejecutar sin depuración en eclipse
- 11. Lectura del registro de Log4Net generado por varios hilos
- 12. eclipse + maven + tomcat depuración
- 13. depuración Haxe desde Eclipse
- 14. web2py Depuración con Eclipse
- 15. ¿Es posible depurar múltiples hilos en eclipse en diferentes ventanas?
- 16. cómo compartir una transacción entre varios hilos
- 17. Depuración de compilación de Maven en Eclipse
- 18. Depuración de Python en Eclipse + PyDev
- 19. Gestión de señales con varios hilos en Linux
- 20. Escribiendo en un solo archivo desde varios hilos en ruby
- 21. Eclipse paso a la depuración
- 22. depuración rubí con dltk Eclipse
- 23. Depuración en mi teléfono (Eclipse, Android)
- 24. Usando varios archivos Eclipse ini
- 25. errores de depuración cuando tiene documento dividido en varios archivos?
- 26. Ncurses de depuración con Eclipse CDT
- 27. Depuración remota de Weblogic usando eclipse
- 28. Depuración de Eclipse "fuente no encontrada"
- 29. Depuración de Eclipse - línea: no disponible
- 30. Java - Creación de varios hilos con un bucle for
Tengo un punto de interrupción en la línea que contiene t.start(), y un punto de interrupción en la primera línea en ejecutar(). Cuando hago un Step-Into, va a la línea después de t.start() en lugar de dentro de run(). –
Eso se espera, pulse "Reanudar" después de t.start(). El depurador hará una pausa en la primera línea de ejecución después de un tiempo. –