Home > 日記2009後期 > ブレークポイントで止まらない件について

ブレークポイントで止まらない件について

Eclipse3.5を入れて、CTRL+クリックでジャンプする時にInterfaceかImplemented Classかを選択する事ができるのがすごい便利なんです。特にInterfaceベースのDIをしまくるプログラムを書いていると重宝します。

で、ブレークポイントを設定しても止まってくれないのです。正確には、最初の1回だけは止まります。その後、全てのブレークポイントが無視されますΣ(゚д゚lll) なんでかなーと思ったら、同じ症状の人を発見しました。

どうやらEclipseは関係なく、JDK6u14のバグらしいです。u14から圧縮ポインタ(?)や新しいGCアルゴリズムが追加されているのですが、GCが悪さをしているのかなぁ。。BugID:6862295で登録されています。仕方ないのでJDK6u13を探そうとしたら、JDK6u15がリリースされていました。日本語のリリースノートも出ています。それによると、、

Java ™ Virtual Machine Tool Interface (JVM TI) のブレークポイントは、並列スカベンジガベージコレクタ (-XX:+UseParallelGC) または並列圧縮ガベージコレクタ (-XX:+UseParallelOldGC) が使用されている場合のみ信頼できます。

ほかのコレクタが使用されている場合は、ブレークポイントが機能しなくなることがあり、フル GC 処理の実行後に JVM TI オブジェクトタグが使用不可になることがあります。Java ™ Debug Interface (JDI) ThreadReference には、JVM TI オブジェクトタグに依存する埋め込みのスレッド ID があるため、この埋め込みのスレッド ID が予期せず変更されることがあります。これにより、スレッドベースの JDI イベントに混乱が発生する可能性があります。

シリアルガベージコレクタ (-XX:+UseSerialGC) はこの問題に対して脆弱ですが、一部のプラットフォームではデフォルトで選択されることに注意してください。この問題を回避するには、コマンド行オプション -XX:+UseParallelGC を使用して並列スカベンジコレクタを明示的に選択します。

との事です。(´ε`;)ウーン…。

JDK6u15ではタイムゾーン関連が更新されているようです。
tzdata2009iはバングラディッシュ関連??
それよりも「ヨルダンの新規則により、tzdata2009h 以降の SimpleTimeZone 解析に障害が発生する」これでしょう(;´Д`) タイムゾーンや夏時間は本当にめんどくさいですね(´・ω・)

追記:JDK6u16がさっそくリリースされてピンポイントで修正されていました。

Comments:2

Comment Form
tas 2009年9月 8日 17:01

こんにちは。検索からたどり着きました。
ここしばらくずっと、ブレイクポイントで止まらない理由が分からずに悩んでいたので助かりました…!ありがとうございます。
JDK1.6.0_16をインストールして、インストール済みのJREにこれを指定したらちゃんと止まるようになりました。
まさか、EclipseでなくJDKの方の問題だとは思いませんでした…

タムタム 2009年9月12日 00:39

お役に立てて何よりですー。
私も最初はEclipseの設定を変更しちゃったのかなと思ってましたw

Trackbacks:0

TrackBack URL for this entry
Listed below are links to weblogs that reference
ブレークポイントで止まらない件について from タムタムの日記

Home > 日記2009後期 > ブレークポイントで止まらない件について

Search
Feeds

Return to page top