Top

ScopeDesc クラス関連のクラス (SimpleScopeDesc, ScopeDesc)

これらは, JIT コンパイラが生成したコードについて, ソースコードレベルでのデバッグに必要な情報を覚えておくためのクラス.

なお, SimpleScopeDesc は ScopeDesc の簡易版.

クラス一覧(class list)


ScopeDesc

概要(Summary)

nmethod オブジェクトについて, ソースコードレベルでのデバッグに必要な情報を記録したクラス.

("method activation" と書かれているので, 1つの ScopeDesc がソースコードレベルでの 1つの関数フレームに対応する模様?? #TODO)

    ((cite: hotspot/src/share/vm/code/scopeDesc.hpp))
    // ScopeDescs contain the information that makes source-level debugging of
    // nmethods possible; each scopeDesc describes a method activation

    class ScopeDesc : public ResourceObj {

使われ方(Usage)

コンストラクタ引数で nmethod とその中の pc(というか命令のアドレス) を指定する. 生成した ScopeDesc オブジェクトからは, 以下のような情報が取り出せる.

詳細(Details)

See: here for details


SimpleScopeDesc

概要(Summary)

ScopeDesc の簡易版.

欲しい情報が methodOop と bci だけであれば高速なこちらのクラスも利用可能, とのこと.

    ((cite: hotspot/src/share/vm/code/scopeDesc.hpp))
    // SimpleScopeDesc is used when all you need to extract from
    // a given pc,nmethod pair is a methodOop and a bci. This is
    // quite a bit faster than allocating a full ScopeDesc, but
    // very limited in abilities.

    class SimpleScopeDesc : public StackObj {

詳細(Details)

See: here for details



This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.