annotate src/solaris/doc/sun/man/man1/ja/jdb.1 @ 11881:5d018ec41792

8077992: Eliminate JDK build dependency of native2ascii and update Japanese nroff man pages to UTF-8 encoding Reviewed-by: mchung Contributed-by: michael.fang@oracle.com
author ihse
date Wed, 06 May 2015 10:25:51 +0200
parents 3a500be9f9ba
children aa8e52dfeee9
rev   line source
mfang@9563 1 '\" t
mfang@9563 2 .\" Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
mfang@9563 3 .\" Title: jdb
mfang@9563 4 .\" Language: English
ihse@11881 5 .\" Date: 2013年11月21日
ihse@11881 6 .\" SectDesc: 基本ツール
mfang@9563 7 .\" Software: JDK 8
ihse@11881 8 .\" Arch: 汎用
mfang@9563 9 .\"
mfang@9563 10 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
mfang@9563 11 .\"
mfang@9563 12 .\" This code is free software; you can redistribute it and/or modify it
mfang@9563 13 .\" under the terms of the GNU General Public License version 2 only, as
mfang@9563 14 .\" published by the Free Software Foundation.
mfang@9563 15 .\"
mfang@9563 16 .\" This code is distributed in the hope that it will be useful, but WITHOUT
mfang@9563 17 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
mfang@9563 18 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
mfang@9563 19 .\" version 2 for more details (a copy is included in the LICENSE file that
mfang@9563 20 .\" accompanied this code).
mfang@9563 21 .\"
mfang@9563 22 .\" You should have received a copy of the GNU General Public License version
mfang@9563 23 .\" 2 along with this work; if not, write to the Free Software Foundation,
mfang@9563 24 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
mfang@9563 25 .\"
mfang@9563 26 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
mfang@9563 27 .\" or visit www.oracle.com if you need additional information or have any
mfang@9563 28 .\" questions.
mfang@9563 29 .\"
mfang@9563 30 .pl 99999
ihse@11881 31 .TH "jdb" "1" "2013年11月21日" "JDK 8" "基本ツール"
mfang@9563 32 .\" -----------------------------------------------------------------
mfang@9563 33 .\" * Define some portability stuff
mfang@9563 34 .\" -----------------------------------------------------------------
mfang@9563 35 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mfang@9563 36 .\" http://bugs.debian.org/507673
mfang@9563 37 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
mfang@9563 38 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mfang@9563 39 .ie \n(.g .ds Aq \(aq
mfang@9563 40 .el .ds Aq '
mfang@9563 41 .\" -----------------------------------------------------------------
mfang@9563 42 .\" * set default formatting
mfang@9563 43 .\" -----------------------------------------------------------------
mfang@9563 44 .\" disable hyphenation
mfang@9563 45 .nh
mfang@9563 46 .\" disable justification (adjust text to left margin only)
mfang@9563 47 .ad l
mfang@9563 48 .\" -----------------------------------------------------------------
mfang@9563 49 .\" * MAIN CONTENT STARTS HERE *
mfang@9563 50 .\" -----------------------------------------------------------------
mfang@9563 51 .SH "NAME"
ihse@11881 52 jdb \- Javaプラットフォーム・プログラムの不具合を検出および修正します。
ihse@11881 53 .SH "概要"
mfang@9563 54 .sp
mfang@9563 55 .if n \{\
mfang@9563 56 .RS 4
mfang@9563 57 .\}
tbell@1178 58 .nf
mfang@9563 59 \fIjdb\fR [\fIoptions\fR] [\fIclassname\fR] [\fIarguments\fR]
tbell@1178 60 .fi
mfang@9563 61 .if n \{\
tbell@1178 62 .RE
mfang@9563 63 .\}
mfang@9563 64 .PP
mfang@9563 65 \fIoptions\fR
mfang@9563 66 .RS 4
ihse@11881 67 コマンドライン・オプション。オプションを参照してください。
mfang@9563 68 .RE
mfang@9563 69 .PP
mfang@9563 70 \fIclass\fRname
mfang@9563 71 .RS 4
ihse@11881 72 デバッグするメイン・クラスの名前。
mfang@9563 73 .RE
mfang@9563 74 .PP
mfang@9563 75 \fIarguments\fR
mfang@9563 76 .RS 4
ihse@11881 77 classの\fImain()\fRメソッドに渡す引数。
mfang@9563 78 .RE
ihse@11881 79 .SH "説明"
mfang@9563 80 .PP
ihse@11881 81 Javaデバッガ(JDB)は、Javaクラス用の簡単なコマンドライン・デバッガです。\fIjdb\fRコマンドとそのオプションはJDBを呼び出します。\fIjdb\fRコマンドは、JDBA (Java Platform Debugger Architecture)を視覚的に実行し、ローカルまたはリモートのJava仮想マシン(JVM)の検査とデバッグを行うことができます。Java Platform Debugger Architecture (JDBA)
ihse@11881 82 (http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jpda/index\&.html)を参照してください。
ihse@11881 83 .SS "JDBセッションの開始"
mfang@9563 84 .PP
ihse@11881 85 JDBセッションを開始するには様々な方法があります。最も頻繁に使用されるのは、デバッグするアプリケーションのメイン・クラスを使用して、JDBから新しいJVMを起動する方法です。コマンドラインで、\fIjava\fRコマンドのかわりに\fIjdb\fRコマンドを入力します。たとえば、アプリケーションのメイン・クラスが\fIMyClass\fRの場合は、JDB環境でデバッグするときに次のコマンドを使用します。
mfang@9563 86 .sp
mfang@9563 87 .if n \{\
mfang@9563 88 .RS 4
mfang@9563 89 .\}
mfang@9563 90 .nf
mfang@9563 91 jdb MyClass
duke@0 92 .fi
mfang@9563 93 .if n \{\
mfang@9563 94 .RE
mfang@9563 95 .\}
mfang@9563 96 .PP
ihse@11881 97 この方法で起動すると、\fIjdb\fRコマンドは、指定されたパラメータを使用して2つ目のJVMを呼び出します。次に、指定されたクラスをロードして、クラスの最初の命令を実行する前にJVMを停止させます。
mfang@9563 98 .PP
ihse@11881 99 \fIjdb\fRコマンドのもう1つの使用方法は、すでに実行中のJVMにjdbを接続することです。\fIjdb\fRコマンドが接続するVMを、その実行中に起動するための構文を次に示します。これは、インプロセス・デバッグ用ライブラリをロードし、接続の種類を指定します。
mfang@9563 100 .sp
mfang@9563 101 .if n \{\
mfang@9563 102 .RS 4
mfang@9563 103 .\}
tbell@1178 104 .nf
mfang@9563 105 java \-agentlib:jdwp=transport=dt_socket,server=y,suspend=n MyClass
tbell@1178 106 .fi
mfang@9563 107 .if n \{\
mfang@9563 108 .RE
mfang@9563 109 .\}
mfang@9563 110 .PP
ihse@11881 111 次のコマンドを使用して、\fIjdb\fRコマンドをJVMに接続できます。
mfang@9563 112 .sp
mfang@9563 113 .if n \{\
mfang@9563 114 .RS 4
mfang@9563 115 .\}
duke@0 116 .nf
mfang@9563 117 jdb \-attach 8000
duke@0 118 .fi
mfang@9563 119 .if n \{\
mfang@9563 120 .RE
mfang@9563 121 .\}
mfang@9563 122 .PP
ihse@11881 123 この場合、\fIjdb\fRコマンドは新しいJVMを起動するかわりに既存のJVMに接続されるため、\fIjdb\fRコマンドラインに\fIMyClass\fR引数は指定しません。
mfang@9563 124 .PP
ihse@11881 125 デバッガをJVMに接続するには他にも様々な方法があり、すべて\fIjdb\fRコマンドでサポートされています。接続オプションについては、Java Platform Debugger Architectureのドキュメントを参照してください。
ihse@11881 126 .SS "基本jdbコマンド"
mfang@9563 127 .PP
ihse@11881 128 基本的な\fIjdb\fRコマンドの一覧を示します。JDBがサポートするコマンドはこれ以外にもあり、それらは\fI\-help\fRオプションを使用して表示できます。
mfang@9563 129 .PP
ihse@11881 130 helpまたは?
mfang@9563 131 .RS 4
ihse@11881 132 \fIhelp\fRまたは\fI?\fRコマンドは、認識されたコマンドのリストに簡潔な説明を付けて表示します。
mfang@9563 133 .RE
mfang@9563 134 .PP
mfang@9563 135 run
mfang@9563 136 .RS 4
ihse@11881 137 JDBを起動してブレークポイントを設定したあとに、\fIrun\fRコマンドを使用して、デバッグするアプリケーションの実行を開始できます。\fIrun\fRコマンドは、既存のVMに接続している場合とは異なり、デバッグするアプリケーションが\fIjdb\fRから起動したときにのみ使用できます。
mfang@9563 138 .RE
mfang@9563 139 .PP
mfang@9563 140 cont
mfang@9563 141 .RS 4
ihse@11881 142 ブレークポイント、例外、またはステップ実行の後で、デバッグするアプリケーションの実行を継続します。
mfang@9563 143 .RE
mfang@9563 144 .PP
mfang@9563 145 print
mfang@9563 146 .RS 4
ihse@11881 147 Javaオブジェクトおよびプリミティブ値を表示します。プリミティブ型の変数またはフィールドの場合には、実際の値が出力されます。オブジェクトの場合には、短い説明が出力されます。オブジェクトの詳細を取得する方法を探すには、dumpコマンドを参照してください。
mfang@9563 148 .sp
ihse@11881 149 \fB注意:\fR
ihse@11881 150 ローカル変数を表示するには、含んでいるクラスが\fIjavac \-g\fRオプションを使用してコンパイルされている必要があります。
mfang@9563 151 .sp
ihse@11881 152 \fIprint\fRコマンドは、次に示すような、メソッド呼出しを使用したものなど、多くの簡単なJava式をサポートします。
mfang@9563 153 .sp
mfang@9563 154 .if n \{\
mfang@9563 155 .RS 4
mfang@9563 156 .\}
duke@0 157 .nf
mfang@9563 158 print MyClass\&.myStaticField
mfang@9563 159 print myObj\&.myInstanceField
mfang@9563 160 print i + j + k (i, j, k are primities and either fields or local variables)
mfang@9563 161 print myObj\&.myMethod() (if myMethod returns a non\-null)
mfang@9563 162 print new java\&.lang\&.String("Hello")\&.length()
duke@0 163 .fi
mfang@9563 164 .if n \{\
mfang@9563 165 .RE
mfang@9563 166 .\}
mfang@9563 167 .RE
mfang@9563 168 .PP
mfang@9563 169 dump
mfang@9563 170 .RS 4
ihse@11881 171 プリミティブ値の場合、\fIdump\fRコマンドは\fIprint\fRコマンドと同一です。オブジェクトの場合、\fIdump\fRコマンドでは、オブジェクト内に定義されている各フィールドの現在の値が出力されます。staticフィールドとinstanceフィールドが出力されます。\fIdump\fRコマンドでは、\fIprint\fRコマンドと同じ式がサポートされます。
mfang@9563 172 .RE
mfang@9563 173 .PP
mfang@9563 174 threads
mfang@9563 175 .RS 4
ihse@11881 176 現在実行中のスレッドを一覧表示します。スレッドごとに、名前と現在の状態、および他のコマンドに使用できるインデックスが出力されます。この例では、スレッド・インデックスは4であり、スレッドは\fIjava\&.lang\&.Thread\fRのインスタンスで、スレッドの名前は\fImain\fRであり、現在実行中です。
mfang@9563 177 .sp
mfang@9563 178 .if n \{\
mfang@9563 179 .RS 4
mfang@9563 180 .\}
tbell@1178 181 .nf
mfang@9563 182 4\&. (java\&.lang\&.Thread)0x1 main running
duke@0 183 .fi
mfang@9563 184 .if n \{\
tbell@1178 185 .RE
mfang@9563 186 .\}
tbell@1178 187 .RE
mfang@9563 188 .PP
mfang@9563 189 thread
mfang@9563 190 .RS 4
ihse@11881 191 現在のスレッドにするスレッドを選択します。多くの\fIjdb\fRコマンドは、現在のスレッドの設定に基づいて実行されます。スレッドは、threadsコマンドで説明したスレッド・インデックスとともに指定します。
tbell@1178 192 .RE
mfang@9563 193 .PP
mfang@9563 194 where
mfang@9563 195 .RS 4
ihse@11881 196 引数を指定しないで\fIwhere\fRコマンドを実行すると、現在のスレッドのスタックがダンプされます。\fIwhere\fR
ihse@11881 197 \fIall\fRコマンドは、現在のスレッド・グループにあるスレッドのスタックをすべてダンプします。\fIwhere\fR
ihse@11881 198 \fIthreadindex\fRコマンドは、指定されたスレッドのスタックをダンプします。
mfang@9563 199 .sp
ihse@11881 200 現在のスレッドが(ブレークポイントか\fIsuspend\fRコマンドによって)中断している場合は、ローカル変数とフィールドは\fIprint\fRコマンドと\fIdump\fRコマンドで表示できます。\fIup\fRコマンドと\fIdown\fRコマンドで、どのスタック・フレームを現在のスタック・フレームにするかを選ぶことができます。
tbell@1178 201 .RE
ihse@11881 202 .SS "ブレークポイント"
mfang@9563 203 .PP
ihse@11881 204 ブレークポイントは、行番号またはメソッドの最初の命令でJDBに設定できます。次に例を示します。
mfang@9563 205 .sp
mfang@9563 206 .RS 4
mfang@9563 207 .ie n \{\
mfang@9563 208 \h'-04'\(bu\h'+03'\c
mfang@9563 209 .\}
mfang@9563 210 .el \{\
mfang@9563 211 .sp -1
mfang@9563 212 .IP \(bu 2.3
mfang@9563 213 .\}
ihse@11881 214 コマンド\fIstop at MyClass:22\fRは、\fIMyClass\fRが含まれるソース・ファイルの22行目の最初の命令にブレークポイントを設定します。
tbell@1178 215 .RE
mfang@9563 216 .sp
mfang@9563 217 .RS 4
mfang@9563 218 .ie n \{\
mfang@9563 219 \h'-04'\(bu\h'+03'\c
mfang@9563 220 .\}
mfang@9563 221 .el \{\
mfang@9563 222 .sp -1
mfang@9563 223 .IP \(bu 2.3
mfang@9563 224 .\}
ihse@11881 225 コマンド\fIstop in java\&.lang\&.String\&.length\fRは、メソッド\fIjava\&.lang\&.String\&.length\fRの先頭にブレークポイントを設定します。
mfang@9563 226 .RE
mfang@9563 227 .sp
mfang@9563 228 .RS 4
mfang@9563 229 .ie n \{\
mfang@9563 230 \h'-04'\(bu\h'+03'\c
mfang@9563 231 .\}
mfang@9563 232 .el \{\
mfang@9563 233 .sp -1
mfang@9563 234 .IP \(bu 2.3
mfang@9563 235 .\}
ihse@11881 236 コマンド\fIstop in MyClass\&.<clinit>\fRは、\fI<clinit>\fRを使用して\fIMyClass\fRの静的初期化コードを特定します。
mfang@9563 237 .RE
mfang@9563 238 .PP
ihse@11881 239 メソッドがオーバーロードされている場合には、メソッドの引数の型も指定して、ブレークポイントに対して適切なメソッドが選択されるようにする必要があります。たとえば、\fIMyClass\&.myMethod(int,java\&.lang\&.String)\fRまたは\fIMyClass\&.myMethod()\fRと指定します。
mfang@9563 240 .PP
ihse@11881 241 \fIclear\fRコマンドは、\fIclear MyClass:45\fRのような構文を使用してブレークポイントを削除します。\fIclear\fRを使用するか、引数を指定しないで\fIstop\fRコマンドを使用すると、現在設定されているすべてのブレークポイントが表示されます。\fIcont\fRコマンドは実行を継続します。
ihse@11881 242 .SS "ステップ実行"
mfang@9563 243 .PP
ihse@11881 244 \fIstep\fRコマンドは、現在のスタック・フレームまたは呼び出されたメソッド内で、次の行を実行します。\fInext\fRコマンドは、現在のスタック・フレームの次の行を実行します。
ihse@11881 245 .SS "例外"
mfang@9563 246 .PP
ihse@11881 247 スローしているスレッドの呼出しスタック上のどこにも\fIcatch\fR文がない場合に例外が発生すると、JVMは通常、例外トレースを出力して終了します。ただし、JDB環境で実行している場合は、違反のスロー時にJDBに制御が戻ります。次に、\fIjdb\fRコマンドを使用して例外の原因を診断します。
mfang@9563 248 .PP
ihse@11881 249 たとえば、\fIcatch java\&.io\&.FileNotFoundException\fRまたは\fIcatch\fR
ihse@11881 250 \fImypackage\&.BigTroubleException\fRのように\fIcatch\fRコマンドを使用すると、デバッグされたアプリケーションは、他の例外がスローされたときに停止します。例外が特定のクラスまたはサブクラスのインスタンスの場合は、アプリケーションは例外がスローされた場所で停止します。
mfang@9563 251 .PP
ihse@11881 252 \fIignore\fRコマンドを使用すると、以前の\fIcatch\fRコマンドの効果が無効になります。\fIignore\fRコマンドでは、デバッグされるJVMは特定の例外を無視せず、デバッガのみを無視します。
ihse@11881 253 .SH "オプション"
mfang@9563 254 .PP
ihse@11881 255 コマンドラインで\fIjava\fRコマンドのかわりに\fIjdb\fRコマンドを使用する場合、\fIjdb\fRコマンドは、\fI\-D\fR、\fI\-classpath\fR、\fI\-X\fRなど、\fIjava\fRコマンドと同じ数のオプションを受け入れます。\fIjdb\fRコマンドは、その他に次のリストにあるオプションを受け入れます。
mfang@9563 256 .PP
ihse@11881 257 デバッグを行うJVMにデバッガを接続するための代替機構を提供するために、その他のオプションがサポートされています。これらの接続の代替に関する詳細なドキュメントは、Java Platform Debugger Architecture (JPDA)
ihse@11881 258 (http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jpda/index\&.html)を参照してください
mfang@9563 259 .PP
mfang@9563 260 \-help
mfang@9563 261 .RS 4
ihse@11881 262 ヘルプ・メッセージを表示します。
mfang@9563 263 .RE
mfang@9563 264 .PP
mfang@9563 265 \-sourcepath \fIdir1:dir2: \&. \&. \&.\fR
mfang@9563 266 .RS 4
ihse@11881 267 指定されたパスを使用して、ソース・ファイルを検索します。このオプションが指定されていない場合は、デフォルト・パスのドット(\&.)が使用されます。
mfang@9563 268 .RE
mfang@9563 269 .PP
mfang@9563 270 \-attach \fIaddress\fR
mfang@9563 271 .RS 4
ihse@11881 272 デフォルトの接続機構を使用して、実行中のJVMにデバッガを接続します。
mfang@9563 273 .RE
mfang@9563 274 .PP
mfang@9563 275 \-listen \fIaddress\fR
mfang@9563 276 .RS 4
ihse@11881 277 実行中のJVMが標準のコネクタを使用して指定されたアドレスに接続するのを待機します。
mfang@9563 278 .RE
mfang@9563 279 .PP
mfang@9563 280 \-launch
mfang@9563 281 .RS 4
ihse@11881 282 デバッグするアプリケーションをJDBの起動後ただちに起動します。\fI\-launch\fRオプションにより、\fIrun\fRコマンドが必要なくなります。デバッグするアプリケーションは、起動後、初期アプリケーション・クラスがロードされる直前に停止します。その時点で、必要なブレークポイントを設定し、\fIcont\fRコマンドを使用して実行を継続できます。
mfang@9563 283 .RE
mfang@9563 284 .PP
mfang@9563 285 \-listconnectors
mfang@9563 286 .RS 4
ihse@11881 287 このJVMで利用できるコネクタを一覧表示します。
mfang@9563 288 .RE
mfang@9563 289 .PP
mfang@9563 290 \-connect connector\-name:\fIname1=value1\fR
mfang@9563 291 .RS 4
ihse@11881 292 一覧表示された引数の値と指定のコネクタを使用してターゲットJVMに接続します。
mfang@9563 293 .RE
mfang@9563 294 .PP
mfang@9563 295 \-dbgtrace [\fIflags\fR]
mfang@9563 296 .RS 4
ihse@11881 297 \fIjdb\fRコマンドのデバッグの情報を出力します。
mfang@9563 298 .RE
mfang@9563 299 .PP
mfang@9563 300 \-tclient
mfang@9563 301 .RS 4
ihse@11881 302 Java HotSpot VMクライアント内でアプリケーションを実行します。
mfang@9563 303 .RE
mfang@9563 304 .PP
mfang@9563 305 \-tserver
mfang@9563 306 .RS 4
ihse@11881 307 Java HotSpot VMサーバー内でアプリケーションを実行します。
mfang@9563 308 .RE
mfang@9563 309 .PP
mfang@9563 310 \-J\fIoption\fR
mfang@9563 311 .RS 4
ihse@11881 312 JVMに\fIoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\fI\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。
mfang@9563 313 .RE
ihse@11881 314 .SH "デバッグ対象のプロセスに転送されるオプション"
mfang@9563 315 .PP
mfang@9563 316 \-v \-verbose[:\fIclass\fR|gc|jni]
mfang@9563 317 .RS 4
ihse@11881 318 冗長モードにします。
mfang@9563 319 .RE
mfang@9563 320 .PP
mfang@9563 321 \-D\fIname\fR=\fIvalue\fR
mfang@9563 322 .RS 4
ihse@11881 323 システム・プロパティを設定します。
mfang@9563 324 .RE
mfang@9563 325 .PP
mfang@9563 326 \-classpath \fIdir\fR
mfang@9563 327 .RS 4
ihse@11881 328 クラスを検索するための、コロンで区切って指定されたディレクトリのリスト。
mfang@9563 329 .RE
mfang@9563 330 .PP
mfang@9563 331 \-X\fIoption\fR
mfang@9563 332 .RS 4
ihse@11881 333 非標準ターゲットJVMオプションです。
mfang@9563 334 .RE
ihse@11881 335 .SH "関連項目"
mfang@9563 336 .sp
mfang@9563 337 .RS 4
mfang@9563 338 .ie n \{\
mfang@9563 339 \h'-04'\(bu\h'+03'\c
mfang@9563 340 .\}
mfang@9563 341 .el \{\
mfang@9563 342 .sp -1
mfang@9563 343 .IP \(bu 2.3
mfang@9563 344 .\}
mfang@9563 345 javac(1)
mfang@9563 346 .RE
mfang@9563 347 .sp
mfang@9563 348 .RS 4
mfang@9563 349 .ie n \{\
mfang@9563 350 \h'-04'\(bu\h'+03'\c
mfang@9563 351 .\}
mfang@9563 352 .el \{\
mfang@9563 353 .sp -1
mfang@9563 354 .IP \(bu 2.3
mfang@9563 355 .\}
mfang@9563 356 java(1)
mfang@9563 357 .RE
mfang@9563 358 .sp
mfang@9563 359 .RS 4
mfang@9563 360 .ie n \{\
mfang@9563 361 \h'-04'\(bu\h'+03'\c
mfang@9563 362 .\}
mfang@9563 363 .el \{\
mfang@9563 364 .sp -1
mfang@9563 365 .IP \(bu 2.3
mfang@9563 366 .\}
mfang@9563 367 javah(1)
mfang@9563 368 .RE
mfang@9563 369 .sp
mfang@9563 370 .RS 4
mfang@9563 371 .ie n \{\
mfang@9563 372 \h'-04'\(bu\h'+03'\c
mfang@9563 373 .\}
mfang@9563 374 .el \{\
mfang@9563 375 .sp -1
mfang@9563 376 .IP \(bu 2.3
mfang@9563 377 .\}
mfang@9563 378 javap(1)
mfang@9563 379 .RE
mfang@9563 380 .br
mfang@9563 381 'pl 8.5i
mfang@9563 382 'bp