 警告: 利用可能なファイル記述子の小さい数は (256) です。
 もしプログラムのスレッドがあまりに多いようであれば、mt_scalableIf
 オプションを設定するかもしくはファイル記述子の数の制限値を増やさなくては
 なりません。「help dbxenv」の mt_scalable の項を参照してください。
#  * Copyright 02/13/02 Sun Microsystems, Inc. All Rights Reserved
#
# helpfile.jdbx
#
#  javahelpfile.dbx 1.4 04/04/22
#
# This is the helpfile for the jdbx plugin
#
# The format is that of the regular dbx helpfile format.
# If help is found here for a topic, then use it when we're
# in java mode. Otherwise use what's in the regular helpfile. 
#
# If a command will appear in both this helpfile and the regular helpfile
# then don't put a one-liner here since dbx will take all the one liners
# and we don't need duplicates.
#
# I18N note below from regular dbx helpfile.
# I18N - topicnames should not be translated unless immediately preceded by
# a comment line containing "I18N"
#
# I18N - do not translate any of the command names in this file. To generate
# a list of all dbx command names, run dbx and type
#
#        commands -all
#
# Top-level help, result of `help' with no arguments
# Top level summary. use this one PLUS the dbx one.
# This one only lists the new commands added with java debugging
:command$$summary

# I18N (do not translate "jpkgs", "jclasses", "java", "native", "jon",
# "joff") from the message below.
Java デバッグ用のコマンド
  jpkgs        jclasses     jon          joff
  java         native 

その他の Java トピック
  jvm_invocation   java-debugging
#
#  Next list commands available only in java mode (when we have a
#  java application loaded. 
#
:jpkgs (Java 専用コマンド)
%jpkgs - 読み込んでいる java パッケージを一覧表示

jpkgs は現在 dbx が認識しているすべての Java パッケージを一覧表示します。
このコマンドの出力は、dbx がさらにパッケージを読み込むと変化します。
#
:jclasses (Java 専用コマンド)
%jclasses - 読み込んでいる java クラスを一覧表示
#
ｊclasses は現在 dbx が認識しているすべての Java クラスを一覧表示します。
このコマンドの出力は、dbx がさらにクラスを読み込むと変化します。
:jon (Java 専用コマンド)
%jon - ネイティブモードの時に java デバッグモードに切替る

jon コマンドは dbx を Java モードに切り替えます。dbx はすべてのコマンドを Java
モードで実行します。

関連項目:help java
#
:joff (Java 専用コマンド)
%joff - java デバッグモードを完全に終了 (通常の dbx モードに移行)

joff は dbx をネイティブモードに切り替えます。dbx はすべてのコマンドを、通常の
dbx モードとして、C/C++ 構文を使って解釈します。

関連項目:"help native"
#
# LATER see bug 4885333
# LATER :javastack (Java only command)
# LATER %javastack - dumps current Java operand stack
# LATER 
# LATER The javastack command dumps the current Java operand stack. It is useful
# LATER in bytecode-level debugging. It is only available on the SPARC architecture.
#
:java (Java 専用コマンド)
%java - java <コマンド>:  java バージョンの <コマンド> を実行

コマンドの前に java があると、dbx はそのコマンドを Java モードで実行します。
Java 構文を使用して、Java の式評価機能を起動し、Java スレッドとスタックフレー
ムを表示します。

JNI コードにいて、コマンドを Java モードで実行する時に有用です。

Java デバッグの全般的なヘルプについては help java-debugging コマンドを使用して
ください。

#
# I18N - translate this topic name 
:java-debugging (トピック)

Java プログラムのデバッグ:
dbx は class ファイルと jar ファイル、混在モードのプログラムをデバッグ
できます。

Java アプリケーションが指定されると、dbx は Java モードになります。Java 専用の
コマンドを有効にして、一部のコマンドを Java モードにします。

dbx は Java コードと JNI コードの間をシームレスに切り替わります。

Java コードのデバッグには 3 つのモードがあります。
Java モード
JNI モード
ネイティブモード

 Java アプリケーションのデバッグでは、dbx は Java モードになります。Java アプ
 リケーションが実行されると、dbx は自動的に Java モードと JNI モードの間でモー
 ドが切り替わります。Java コード内にいるときは Java モードになり、JNI コードに
 入ると JNI モードになります。

 dbx は自動的にはネイティブモードになりません。ネイティブモードには joff コ
 マンド、Java モードには jon コマンドを使って切り替えることができます。

 Java モードでは、Java 構文を使って dbx と対話し、dbx も Java 構文を使って情
 報を提供します。このモードは純粋な Java コード、またはJava/ネイティブ混在プロ
 グラムの Java 部分のデバッグに使用します。

 JNI モードでは、dbx のコマンドはネイティブ構文を使用して、ネイティブコードに
 だけ作用しますが、コマンドの出力には、ネイティブの状態ばかりでなく、Java 関係
 の状態も示されるため、JNI モードは「混在」モードです。このモードは、Java/ネイ
 ティブプログラムのネイティブ部分のデバッグに使用します。

 ネイティブモードでは、dbx コマンドはネイティブのプログラムにだけ作用し、Java 
 関係の機能はすべて無効になります。このモードは Java が関係しない通常のプログ
 ラムのデバッグに使用します。
 
 dbx は jdbx_mode 環境変数に現在のモードを保持します。

Java デバッグ用の環境変数:

 jdbx_mode      :次の値を設定することができます。java、jni、native
 JAVASRCPATH    :この環境変数は、dbx が Java ソースファイルを探す場所を指定す
		 る時に使用します。この変数は、Java ソースファイルが class や 
		 jar ファイルと同じディレクトリにない場合に役立ちます。
 CLASSPATHX     :この環境変数は、カスタムクラスローダーが読み込む class ファイ
		 ルのパスを指定する時に使用します。
 jvm_invocation :この環境変数は、dbx が JVM を起動する方法をカスタマイズする時
		 に使用します。詳細は、help jvm_invocation を参照してください。

関連項目:debug、dbx
#
#
#
:native (Java 専用コマンド)
%native - native <コマンド> : ネイティブモードの <コマンド> を実行
#
コマンドの前に native があると、dbx はそのコマンドをネイティブモードで実行しま
す。このことは、式が C/C++ 式として解釈、表示されて、コマンドによっては出力が
異なることを意味します。たとえば native where はすべてのネイティブフレームを表
示します。

このコマンドは、Java コードをデバッグしていて、ネイティブ環境を調べる時に有用
です。
#
#
# Now list the commands that are different in Java mode or have a 
# different syntax. 
# These override what is found in the main dbx helpfile.
# Don't include the one-liners here. We'll take them from the main helpfile.
#  
#
:debug (コマンド)
%debug - デバッグ対象を表示、または変更

debug コマンドはデバッグ対象のプログラムを表示または変更します。指定された 
Java アプリケーションを読み込んで、デバッグを開始します。

下記構文の <prog> には、以下のどれでも指定できます。
  <file>.class     -  class ファイルのデバッグ
  <jarfile>.jar    -  マニフェストファイルに Main_class 属性が設定されている
                      JAR ファイルのデバッグ
  jar:<url>!/<classfile>.class 
                   -  マニフェストファイルまたは Main_class 
                      属性がない Java ファイルに JAR URL 構文を使用

注: .class または .jar ファイル名拡張子を含める必要があります。

debug                 # デバッグ対象のプログラム名を表示します。
debug <prog>          # プロセス ID <pid> の指定なしで <prog> のデバッグを開始。
debug <prog> <pid>    # プロセス ID <pid> の <prog> のデバッグを開始。
debug -p <pid> <prog> # プロセス ID <pid> の <prog> のデバッグを開始。
                        <prog> には "-" を指定できます。その場合 dbx は /proc 
                        を使ってプログラムを探します。
debug -r ...          # <prog> のデバッグを開始し、trace、when、stop コマンド
                        を、すべて保持します。。-r がない場合、dbx は暗黙で 
			"delete all" と "undisplay 0" を実行します。
debug -clone ...      # "-clone" は別の dbx の実行を開始して、一度に複数のプロ
		        セスをデバッグすることを可能にするオプションです。この
			オプションは、GUI で動作している場合にのみ有効です。
debug -clone          # 何もデバッグしない別の dbx を起動します。このオプ
			ションは、GUI で動作している場合にのみ有効です。
debug [<options>] -- <prog> # <prog> がハイフンで始まっていても、<prog> のデ
			      バッグを開始します。
例:
    (dbx) debug myclass.class
    (dbx) debug /home/mydirectory/mypkg/myclass.class
    (dbx) debug java.pkg.myclass.class
    (dbx) debug myjarfile.jar
    (dbx) debug jar:myjar.jar!/myclass.class
    (dbx) debug jar:file:/a/b/c/myjar.jar!/myclass.class

関連項目:オプションのヘルプについては、help dbx および help invocation を参照。
#
:files (コマンド)
%files - dbx が認識している全ての Java ソースファイルを一覧表示

files コマンドは、dbx が認識しているすべての Java ソースファイル名を一覧表示し
ます。この一覧は、プログラムが実行され、さらにクラスやライブラリが読み込まれる
と変化します。
#
:func (コマンド)
%func - 現在のメソッドを表示、または変更。
func                    # 現在の関数の名前を表示します。
func qual-methodname    # 現在のメソッドを qual-method_name に変更します。

qual-methodname は [classname.]method_name[(parameters)] の形式です。

  classname は有効な Java クラスまたはパッケージのパス、method_name は指定した
  classname 内の有効な Java 関数です。parameters はメソッドのパラメータです。
#
#
:run (コマンド)
%run - 引数とともにプログラムを実行
run                     # 現在の引数でプログラムの実行を開始します。
run <args>              # 新しい引数でプログラムの実行を開始します。

args はターゲットプロセスの実行に使用する引数です。
引数は、JVM ではなく Java アプリケーションに渡されます。引数に主クラス名を指定
しないでください。 

Java アプリケーションの入出力を run コマンドでリダイレクトすることはできません。

プログラムの実行を停止するには、Control-C を使用します。

# I18N - do not translate this 'jvm_invocation'
関連項目:jvm_invocation 
#
#
# I18N - do _not_ translate this topic name as it is an environment variable.
:jvm_invocation
%jvm_invocation - JVM の起動オプションを指定する dbx 環境変数

jvm_invocation 環境変数を使って、dbx のJVM 起動オプションをカスタマイズする
ことができます。 

通常、dbx は次のオプションを使って JVM ソフトウェアを起動します。
 java -Xdebug -Xnoagent -Xrundbx_agent:sync=<pid>

jvm_invocation が定義されている場合、dbx はその定義を使用します。 

例:
jvm_invocation="/myjava/java -Xdebug"

定義には、-Xdebug オプションを含める必要があります。dbx はその他のオプションを
追加します。

#
# DBX will pick up the one-liner from regular dbx help file. So don't
# add a one liner here.
:attach (コマンド)

JVM がデバッグモードで起動されている場合、dbx は動作中の Java プロセスに接続す
ることができます。

attach <pid>                  # プロセス ID <pid> の <prog> のデバッグを開始
                              # dbx は /proc を使ってプログラムを探します。
attach -p <pid> <prog>        # プロセス ID <pid> の <prog> のデバッグを開始
debug <prog> <pid>            # プロセス ID <pid> の <prog> のデバッグを開始
                              # <prog> には "-" を指定できます。その場合 dbx 
                              # は /proc を使ってプログラムを探します。
attach -r ...                 # "-r" オプションがあると、dbx は、display、
                              # trace、when、stop コマンドをすべて保持します。
			      # "-r" オプションがない場合は、暗黙で "delete" 
			      # および "undisplay 0" を実行します。
例
最初に JVM が libdbx_agent.so を見つけられるようにする必要があります。
libdbx_agent.so のパスを LD_LIBRARY_PATH に追加してください。このパスはインス
トールディレクトリにあります。
    32 ビットアプリケーションの場合    <install_directory>/lib
    64ビットアプリケーションの場合     <install_directory>lib/v9 

# note for helpfile maintainers - below, be sure to keep a space after
# the '%' below!
次に、以下のように入力してアプリケーションを起動します。
  % java -Djava.compiler=NONE -Xdebug -Xnoagent -Xrundbx_agent <myjava>.class

これで接続することができます。アプリケーションのプロセス ID を使って dbx を起
動します。
   % dbx - <pid>

関連項目:<prog> の形式については、help debug を参照。
#
# we have our own jdbx event specification topic
:event$$specification (トピック)
イベント管理コマンドの stop、when、trace では、イベント指定によって特定のイベン
トを指定することができます。 
イベント指定の一般的な構文は以下のとおりです。

        <keyword> [ <arg> ] [ <modifier> ... ]

keyword はイベントの種類で、よく使われるのは at と in です。
いくつかのイベントは、以下の例に示すように別の引数も取ります。
modifier は - で始まり、すべての種類のイベントとコマンドに適用されます。
ただし、一部、特殊な修飾子を受け付けるコマンドやイベントもあります。

以下に、Java デバッグで有効なイベント指定の構文を示します。

        access <mode> <fieldname>
                        # fieldname (例: classname.field) で指定されたメモリー
			# がアクセスされた。 <mode> はメモリーへのアクセス方法
			# の指定で、文字 "r" (読み取りアクセス) か "w" (書き込
			# みアクセス) のいずれかまたは両方を指定することができ
			# ます。<mode> にはまた、"b" (アクセス前に停止) を指定
			# することもできます
        at <lineno>     # <lineno> が実行されようとしている
        at <filename>.<lineno>
                        # <filename> の <lineno> が実行されようとしている
        classload       # 任意のクラスのロード
        classload <classname>
                        # クラス <classname> のロード
        classunload     # 任意のクラスのアンロード
        classunload <classname>
                        # クラス  <classname> のアンロード
        change <classname>.<fieldname>
                        # <classname> の <fieldname> の変更
        cond <condition expression>
                        # <condition expression> の評価結果が真
        in <classname>.<method_name>
                        # <classname>.<method_name> という名前のメソッドに入った
        in <classname>.<method_name>([parameters])
                        # 指定されたパラメータを持つメソッド 
                        # <classname>.<method_name> に入った
        inmethod <method_name>
                        # <method_name> という名前のメソッドに入った
        inmethod <method_name>([parameters])
                        # 指定されたパラメータを持つ、<method_name> という名前
                        # のメソッドに入った
        throw           # Java 例外がスローされた
        throw <type>    # <type> のJava 例外がスローされた
                        # type は -unhandled か -unexpected です

Java デバッグで有効な修飾子は以下のとおりです。
        -if <cond>      # イベントは <cond> 式が真の場合にだけ発生します
                        # 式には、評価結果が整数型の任意の式を使用できます
        -count <num>    # 0 からカウントアップします。イベントは、<n> に達した
                        # 時に発生し、同時にカウンタは 0 にリセットされます
        -count infinity # カウントするだけで、イベントは発生しません
        -temp           # 一時的なイベントで、発生すると削除されます
        -disable        # 無効状態のイベントを作成します
#
#
:whatis (コマンド)

whatis <identifier>     # 識別子の宣言を表示します。識別子がクラスの場合は、
                        # すべての継承メソッドを含めてクラスのメソッド情報を
                        # 表示します。

 <identifier> は、クラス、現在のクラス内のメソッド、現在のフレーム内のローカル
 変数、現在のクラス内のフィールドのいずれかです。
#
#
:when (コマンド)

when コマンドは、指定されたイベントが発生した時にコマンドを実行します。

when at <line> { cmd; }         # <line> に達した時にコマンドを実行します。
when in <proc> { cmd; }         # <proc> が呼び出された時にコマンドを実行します

when の一般的な構文は次のとおりです。

when <event-specification> [ <modifier> ] { <cmd> ... ; }

help event specification に、構文を含めて全イベントを一覧にまとめています。
イベント管理用のコマンド全般については、help events をご覧ください。

dbx が Java モードの時にネイティブコードにイベントを設定するには、joff コマン
ドを使用するか、when コマンドの前に native を指定することによってネイティブ
モードに切り替えます。 

dbx が JNI モードの時に Java コードにイベントを設定するには、jon コマンドを使
用するか、when コマンドの前に java を指定することによってネイティブモードに切
り替えます。 

関連項目:help jon、help joff、help java、help native
#
#
:where (コマンド)
where [thread_id]               # メソッドのトレースバックを表示します。 
where [thread_id] <num>         # トレースバックの最初の <num> 個のフレームを
                                # 表示します。
where -f [thread_id] <num>      # フレーム <num> からトレースバックを開始しま
                                # す。
where -q [thread_id]            # 簡易トレースバック (メソッド名のみ)
where -v [thread_id]            # 詳細トレースバック (メソッドの args 行の情報
                                # を含む)


引数の説明:
[thread_id] : dbx 形式のスレッド ID またはスレッドに指定した Java スレッド名で
	      す。thread_id が指定された場合は、そのスレッドに対してコマンドを
	      実行します。thread_id が指定されなかった場合、現在のスレッドに対
	      してコマンドを実行します。
#
#
:print (コマンド)
print <exp>, ...# <exp>, ... で指定された式の値を表示します。
print -r <exp>             # 継承メンバーを含む exp の値を表示します。
print +r <exp>             # dbxenv の output_inherited_members が on 場合は、
                           # 継承メンバーを表示しません。
print -d <exp>             # 式 <exp> の動的型を表示します。
print +d <exp>             # dbxenv の output_inherited_members が on 場合は、
                           # 式 <exp> の動的型を使用しません。
print -- <exp>             # "--" はフラグ引数の終わりを示します。これは、
                           # <exp> 正または負符号で始まる場合に役立ちます。

