Java Tools Tutorials - Herong's Tutorial Notes - Version 5.32, by Dr. Herong Yang
Starting Debugging Session on a Multi-Thread Application
This section provides a tutorial example on how to start a debugging session on a multi-thread Java application, PrimeNumberSeeker.java.
1. Setting up breakpoints and getting the debugging session going:
C:\herong>jdb PrimeNumberSeeker Initializing jdb ... > stop in PrimeNumberSeeker.main Deferring breakpoint PrimeNumberSeeker.main. It will be set after the class is loaded. > run run PrimeNumberSeeker Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint PrimeNumberSeeker.main Breakpoint hit: "thread=main", PrimeNumberSeeker.main(), line=13 13 System.out.println("Period, Current int, # primes"); main[1] stop in PrimeNumberSeeker.run Set breakpoint PrimeNumberSeeker.run main[1] cont Period, Current int, # primes 1, 2, 0 > Breakpoint hit: "thread=Thread-0", PrimeNumberSeeker.run(), line=28 28 primes = new int[ceiling]; Thread-0[1] threads Group system: (java.lang.ref.Reference$ReferenceHandler)0x157 Reference Handler... (java.lang.ref.Finalizer$FinalizerThread)0x156 Finalizer ... (java.lang.Thread)0x155 Signal Dispatcher... (java.lang.Thread)0x154 Attach Listener ... Group main: (java.lang.Thread)0x1 main sleeping (PrimeNumberSeeker)0x189 Thread-0 running (breakpoint)
Ok. What I have done so far:
Last update: 2015.
Table of Contents
'javac' - The Java Program Compiler
'java' - The Java Program Launcher
'jdb' - Java Debugger Command and Options
Starting a Debugging Session with 'jdb'
Debugging Applications with Separate 'jdb' Sessions
Debugging Java Applications Remotely
Listing Debugging Commands with 'help' Command
PrimeNumberSeeker.java - Multi-Thread Sample Program
►Starting Debugging Session on a Multi-Thread Application
Stepping through Statements of a Child Thread
Checking Variable Values in a Debugging Session
Debugging the Main Thread of a Multi-Thread Application
Switching Execution Threads in a Debugging Session
Suspending Main Thread to Debug Child Thread
'jconsole' - Java Monitoring and Management Console
'jstat' - JVM Statistics Monitoring Tool
jvisualvm (Java VisualVM) - JVM Visual Tool
'javap' - The Java Class File Disassembler
'keytool' - Public Key Certificate Tool