While working with Java applications running on the Java HotSpot VM, we might sometimes encounter problems such as application hangs, memory leaks, unexpected application behavior, or crashes. Troubleshooting such problems can be very hard and tricky. But with knowledge of the right set of tools and utilities for nailing these problems down and how to approach them, troubleshooting can be made much easier and can help us develop stable, reliable, and efficient Java applications. This slides deck covers how we should approach these JVM issues and which tools and utilities are useful for diagnosing and troubleshooting them.