Редкий бесконечный цикл в коде, не хочется ждать, пока он повторится

Итак, у меня есть генетический алгоритм, работающий в netbeans, он работает около 5 часов и, похоже, вошел в бесконечный цикл. Можно ли как-то подключить к нему отладчик? или хотя бы понять, где это находится в коде? Я бы предпочел не сидеть без дела еще 5 часов, пока я жду, когда это произойдет снова.


person wfbarksdale    schedule 22.04.2011    source источник
comment
здесь нет необходимости в коде, он просто спрашивает, может ли он подключить отладчик во время выполнения. проголосовал за вопрос.   -  person user237419    schedule 22.04.2011


Ответы (1)


Простой способ получить основную информацию о работающей программе — запустить jstack на нем, он напечатает трассировку стека всех потоков в вашем коде. Сделайте это несколько раз, и у вас должно быть хорошее представление о том, что не так.

Используйте jps, чтобы узнать идентификатор вашего JVM нравится, а затем использует jstack с этим идентификатором:

$ jps
10664 Jps
7141 org.eclipse.equinox.launcher_1.2.0.v20110124-0830.jar
$ jstack 7141

VisualVM предоставляет аналогичную информацию, если вы предпочитаете приложение с графическим интерфейсом.

person Joachim Sauer    schedule 22.04.2011
comment
Я попробую, нужно выяснить, что такое jstack :) - person wfbarksdale; 22.04.2011
comment
VisualVM (часть JDK) также может создавать трассировку стека. - person a_horse_with_no_name; 22.04.2011
comment
Да, наверное, проще. Я просто привык делать это с серверами, которые находятся за ограничительными брандмауэрами и соединениями с низкой пропускной способностью. В таких случаях с jstack намного проще обращаться ;-) - person Joachim Sauer; 22.04.2011