我安装了openjdk-devel
and openjdk-devel-debuginfo
RedHat Linux Server 8+ 中的架构具有相同的主要/次要版本。我想确保 OpenJDK 运行时具有用于调试的符号。安装后,我运行了以下命令:
[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
正如上面所暗示的,我看到objdump
for java
打印出某种符号表,但我读过还应该寻找.debug*
在输出中,我在其余的中没有看到SYMBOL TABLE
部分(为简洁起见,从上面的输出中省略了几十行)。
我看到file
for /usr/lib/debug/..../java...debug
says with debug_info
,但我需要确认 Java 安装确实有符号。