Stepping through Statements of a Child Thread

This section provides a tutorial example on how to step through execution statements of the child thread in a multi-thread application.

2. Stepping through statements in the sub thread:

Thread-0[1] where all
Attach Listener:
Signal Dispatcher:
Finalizer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:142)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:158)
  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:209)
Reference Handler:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:502)
  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:157)
main:
  [1] java.lang.Thread.sleep (native method)
  [2] PrimeNumberSeeker.main (PrimeNumberSeeker.java:21)
Thread-0:
  [1] PrimeNumberSeeker.run (PrimeNumberSeeker.java:28)

Thread-0[1] next
2, 2, 0
>
Step completed: "thread=Thread-0", PrimeNumberSeeker.run(), line=29
29          while (count < ceiling) {

Thread-0[1] where all
...
main:
  [1] java.lang.Thread.sleep (native method)
  [2] PrimeNumberSeeker.main (PrimeNumberSeeker.java:21)
Thread-0:
  [1] PrimeNumberSeeker.run (PrimeNumberSeeker.java:29)

Thread-0[1] next
3, 2, 0
> 
Step completed:
   "thread=Thread-0", PrimeNumberSeeker.run(), line=30 bci=17
30             current++;

Thread-0[1] next
4, 3, 0
>
Step completed:
   "thread=Thread-0", PrimeNumberSeeker.run(), line=31 bci=27
31             int j = 2;

Thread-0[1] next
5, 3, 0
>
Step completed: 
   "thread=Thread-0", PrimeNumberSeeker.run(), line=32 bci=29
32             boolean isPrime = true;

Thread-0[1] next
6, 3, 0
>
Step completed: 
   "thread=Thread-0", PrimeNumberSeeker.run(), line=33 bci=31
33             while (j<current/2 && isPrime) {

Thread-0[1] list
29          while (count < ceiling) {
30             current++;
31             int j = 2;
32             boolean isPrime = true;
33 =>          while (j<current/2 && isPrime) {
34                isPrime = current % j > 0;
35                j++;
36             }
37             if (isPrime) {
38                count++;
Thread-0[1] print current
 current = 3

What I have done here:

Last update: 2015.

Table of Contents

 About This Book

 Java Tools Terminology

 Installing Java 8 on Windows

 'javac' - The Java Program Compiler

 'java' - The Java Program Launcher

'jdb' - The Java Debugger

 '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

 JVM Troubleshooting Tools

 jvisualvm (Java VisualVM) - JVM Visual Tool

 'jar' - The JAR File Tool

 'javap' - The Java Class File Disassembler

 'keytool' - Public Key Certificate Tool

 'native2ascii' - Native-to-ASCII Encoding Converter

 Outdated Tutorials

 References

 PDF Printing Version