I installed openjdk-devel
and openjdk-devel-debuginfo
of the same major/minor version for an architecture in RedHat Linux Server 8+. I would like to make sure that the OpenJDK runtime has symbols for debugging. After installation, I ran the followings:
[root@localhost bin]# objdump --syms /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/jre/bin/java: file format elf64-x86-64
SYMBOL TABLE:
0000000000000270 l d .interp 0000000000000000 .interp
0000000000000290 l d .note.gnu.property 0000000000000000 .note.gnu.property
00000000000002b0 l d .note.ABI-tag 0000000000000000 .note.ABI-tag
00000000000002d0 l d .note.gnu.build-id 0000000000000000 .note.gnu.build-id
00000000000002f8 l d .hash 0000000000000000 .hash
0000000000000348 l d .gnu.hash 0000000000000000 .gnu.hash
0000000000000370 l d .dynsym 0000000000000000 .dynsym
....
....
....
[root@localhost etc]# file /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/jre/bin/java:
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=613871d1514ba05fa2914c22c10f1dfe01d3d2e8, not stripped
[root@localhost bin]# objdump --syms /usr/lib/debug/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/bin/java-1.8.0.242.b08-0.el8_1.x86_64.debug
/usr/lib/debug/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/bin/java-1.8.0.242.b08-0.el8_1.x86_64.debug: file format elf64-x86-64
SYMBOL TABLE:
no symbols
[root@localhost bin]# file /usr/lib/debug/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/bin/java-1.8.0.242.b08-0.el8_1.x86_64.debug
/usr/lib/debug/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64/bin/java-1.8.0.242.b08-0.el8_1.x86_64.debug:
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter \004, for GNU/Linux 3.2.0, BuildID[sha1]=613871d1514ba05fa2914c22c10f1dfe01d3d2e8, with debug_info, not stripped
As the above suggests, I see the objdump
for java
prints out some sort of symbol table, but I had read that one should also look for .debug*
in the output, which I'm not seeing in the remaining of SYMBOL TABLE
section (a few dozens of lines omitted from above output for brevity).
I see the file
for /usr/lib/debug/..../java...debug
says with debug_info
, but I need confirmation that the Java installation does have symbols.