代码中的罕见无限循环,不想等待它再次发生
好的,所以我有一个在netbeans中运行的遗传算法,它运行了5个小时,似乎进入了一个无限循环。有什么方法可以将调试器附加到它吗?或者至少弄清楚它在代码中的位置?我宁愿不要再等待5个小时,等待它再次发生。代码中的罕见无限循环,不想等待它再次发生
从正在运行的程序中获取一些基本信息的简单方法是在其上运行jstack
,它将打印代码中所有线程的堆栈跟踪。做几次,你应该有一个好主意是什么错。
使用jps
找出你喜欢的JVM的id,然后使用jstack
与ID:
$ jps
10664 Jps
7141 org.eclipse.equinox.launcher_1.2.0.v20110124-0830.jar
$ jstack 7141
VisualVM提供类似的信息,如果你喜欢一个GUI应用程序。
生病了吧,要去搞清楚jstack是怎么回事:) – wbarksdale 2011-04-22 07:37:28
VisualVM(JDK的一部分)也能够生成堆栈跟踪 – 2011-04-22 07:38:26
VisualVM是一个救生员,非常感谢 – wbarksdale 2011-04-22 07:54:39
这里不需要代码,他只是问他是否可以在运行时连接一个调试器。提出了问题。 – user237419 2011-04-22 07:43:47