【问题标题】:Can a single java thread be killed from jdb?可以从 jdb 中杀死单个 java 线程吗?
【发布时间】:2012-01-01 15:16:00
【问题描述】:

理论上,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中创建一个新的异常,让线程死掉?

【问题讨论】:

  • 半色没有区别(测试过),你添加的“这里”链接中的海报也说他也不能杀死线程。

标签: java multithreading exception kill jdb


【解决方案1】:

以下answer on SO 似乎只是强制您的问题。

但是下面的answer 可能确实回答了你的问题...

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      相关资源
      最近更新 更多