OpenJ9 Debug Images

OpenJ9 Debug Images

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 see two download links besides the JDK build itself. The test-images, which provides native test libraries required to run some testing, and the debug-image. When building using make all look for the images/debug-image directory. For Semeru releases, the debug-image files are available from the binary release on github, for example https://github.com/ibmruntimes/semeru17-binaries/releases for Semeru 17, similarly for other versions.

The files contained in the debug image vary per platform. For most platforms they are additional files, understood by the native debugger, which should be placed beside the shared libraries and executables in the JDK file structure in order to be used. Overlay the bin, lib, etc. directories contained in the debug-image over these same directories in the JDK build. On JDK8, they go inside the jre directory in the JDK build.

On Linux platforms the files are .debuginfo, on Windows .pdb (and .map), on Mac they are .dSYM folders. On AIX, the debug image contains shared libraries and executables that replace what is in the JDK, and contain additional debug info.

Once the debug-image files are in the expected place, they are automatically discovered by the native debugger. Run the native debugger as you normally would, and enjoy the extra debug information provided by the debug-image files.

See also https://github.com/eclipse-openj9/openj9/pull/16065 and https://github.com/eclipse-openj9/openj9/pull/16060

OpenJ9