4

理論的には、JDB (Java デバッガー) では 1 つのスレッドを強制終了できます。実際には、それは可能ですか?ここでは、ポート 8000 に agentlib がある JVM に jdb を接続します。

$ 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 で新しい例外を作成し、それをスレッドに渡して終了させるにはどうすればよいでしょうか?

4

2 に答える 2

0

jconsole/jvisualvm も実行している可能性があります。私は同じ問題を抱えていましたが、jconsoleを閉じたところ、jdb killコマンドが機能しました。

于 2014-01-18T20:20:22.070 に答える