Most OpenJ9 platforms create debug images as part of the build, automatically on jenkins or when running make all. These are overlays to the JDK which add additional debug information for native debuggers, such as gdb or windbg, to help developers diagnose problems. Looking at a build for the xLinux platform in Jenkins, you can…
Tag: debug
Debugging Java Applications using Watched Fields
Debugging can be quite tedious, complex and cumbersome. Detailed within this blog we will explore how to make Java debugging a bit easier by leveraging the JVM’s embedded debugging tools. Native C/C++ debuggers utilize operating system hooks to debug an application. The Java Virtual Machine (JVM) includes it’s own unique and powerful toolkit for debugging;…
Inspecting OpenJ9 performance with perf on Linux – JIT Compiled Methods
In the first post of this series we learned how to profile modules within the JVM itself using perf. This is useful for diagnosing JVM related problems. However in typical applications the user application code (JCL included) will dominate the profile, so it is often desirable to want to profile the user application code as…
Improved JVM debug mode based on OSR
JVM debug mode It is important that developers can use debuggers like Eclipse, NetBeans, and JDB to debug a Java program running in debug mode. Under the hood, debugging features like setting breakpoints, single stepping, inspecting variable values, etc., are implemented through JVM Tool Interface (JVMTI). JVMTI is the lowest level of programming interface used…
New DDR Extensions and ValueTypes
This blog is intended to serve as a technical overview of current Direct Dump Reader (DDR) implementation and an instruction to add new DDR extensions. It is the responsibility of Eclipse OpenJ9 developers to modify DDR whenever there are some changes in J9VM. Additionally, I briefly introduce memory layouts of ValueTypes in J9VM and a…