4

理论上,JDB(Java 调试器)允许杀死单个线程。在实践中,有可能吗?在这里,我将 jdb 附加到我的 JVM,它在端口 8000 上有一个 agentlib:

$ jdb -attach 8000
> 

我列出了线程:

> threads
Group system:
  (java.lang ...
  [...]

我找到有问题的线程并尝试杀死它:

> kill 0x21bb new java.lang.Exception("die!")
killing thead: pool-766-thread-1
> com.sun.tools.example.debug.expr.ParseException: Unable to create java.lang.Exception instance
Expression must evaluate to an object

所以线程不能被杀死?

如何在 jdb 中创建一个新的 Exception,将其交给线程而死?

4

2 回答 2

1

以下关于 SO 的答案似乎只是为了强制执行您的问题。

但是以下答案可能确实回答了您的问题...

于 2013-11-19T12:38:06.627 回答
0

您可能还运行了 jconsole/jvisualvm。我有同样的问题,但后来我关闭了 jconsole,jdb kill 命令起作用了。

于 2014-01-18T20:20:22.070 回答