jdb(1) jdb(1) jdb - Javabug jdb [options] [classname] [arguments] options classname arguments classmain() Java(JDB)JavajdbJDBjdbJDBA (Java Platform Debugger Architecture)Java Virtual Machine (JVM)Java Platform Debugger Architecture (JDBA) (http://docs.oracle.com/javase/8/docs/technotes/guides/jpda/index.html) JDB JDBJDBJVMjavajdbMyClassJDB jdb MyClass jdb2JVMJVM jdb1JVMjdbjdbVM java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n MyClass jdbJVM jdb -attach 8000 jdbJVMJVMjdbMyClass JVMjdbJava Platform Debugger Architecture jdb jdbJDB-help help? help? run JDBrunrunVMjdb cont print Javadump : javac -g printJava print MyClass.myStaticField print myObj.myInstanceField print i + j + k (i, j, k are primities and either fields or local variables) print myObj.myMethod() (if myMethod returns a non-null) print new java.lang.String("Hello").length() dump dumpprintdumpstaticinstancedumpprint threads 4java.lang.Threadmain 4. (java.lang.Thread)0x1 main running thread jdbthreads where wherewhere allwhere threadindex (suspend)printdumpupdown JDB o stop at MyClass:22MyClass22 o stop in java.lang.String.lengthjava.lang.String.length o stop in MyClass.MyClass MyClass.myMethod(int,java.lang.String)MyClass.myMethod() clearclear MyClass:45clearstopcont stepnext catchJVMJDBJDBjdb catch java.io.FileNotFoundExceptioncatch mypackage.BigTroubleExceptioncatch ignorecatchignoreJVM javajdbjdb-D-classpath-Xjavajdb JVMJava Platform Debugger Architecture (JPDA) (http://docs.oracle.com/javase/8/docs/technotes/guides/jpda/index.html) -help -sourcepath dir1:dir2: . . . (.) -attach address JVM -listen address JVM -launch JDB-launchruncont -listconnectors JVM -connect connector-name:name1=value1 JVM -dbgtrace [flags] jdb -tclient Java HotSpot VM -tserver Java HotSpot VM -Joption JVMoptionoptionJava1-J-Xms48m48MBjava(1) -v -verbose[:class|gc|jni] -Dname=value -classpath dir -Xoption JVM o javac(1) o java(1) o javah(1) o javap(1) JDK 8 20131121 jdb(1)