Ik tracht een multi-threaded applicatie te debuggen vanuit Eclipse 3.2, maar heb problemen met het debuggen van dynamisch aangemaakte threads in de remote applicatie.
De remote applicatie heeft de volgende parameters meegekregen voor de Sun JVM (1.5)
Vanuit Eclipse heb ik natuurlijk een remote debug sessie opgezet. Ik zie de main thread met status (Running) in het debug-tabblad. Verder heb ik een aantal breakpoints gezet. Dit werkt ook: als de main thread een breakpoint passeert dan wordt de main thread suspended en kun je door de code stappen.
Maar dit lukt niet: wanneer de remote applicatie een nieuwe thread aanmaakt doen breakpoints echter helemaal niets. De nieuwe thread wel is wel (kort) zichtbaar in het Debug-tabblad, maar het breakpoint wordt niet gehonoreerd en de thread suspend dus ook niet waardoor debuggen dus onmogelijk is.
Ik dacht dat een nieuwe thread gewoon hoort te suspended als een breakpoint wordt gepasseerd? Wat heb ik gemist? Hoe kun je multi-threaded applicatie debuggen vanuit Eclipse?
De remote applicatie heeft de volgende parameters meegekregen voor de Sun JVM (1.5)
code:
1
| -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n |
Vanuit Eclipse heb ik natuurlijk een remote debug sessie opgezet. Ik zie de main thread met status (Running) in het debug-tabblad. Verder heb ik een aantal breakpoints gezet. Dit werkt ook: als de main thread een breakpoint passeert dan wordt de main thread suspended en kun je door de code stappen.
Maar dit lukt niet: wanneer de remote applicatie een nieuwe thread aanmaakt doen breakpoints echter helemaal niets. De nieuwe thread wel is wel (kort) zichtbaar in het Debug-tabblad, maar het breakpoint wordt niet gehonoreerd en de thread suspend dus ook niet waardoor debuggen dus onmogelijk is.
Ik dacht dat een nieuwe thread gewoon hoort te suspended als een breakpoint wordt gepasseerd? Wat heb ik gemist? Hoe kun je multi-threaded applicatie debuggen vanuit Eclipse?
"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand