RFR: 8248876: LoadObject with bad base address created for exec file on linux
Yasumasa Suenaga
ysuenaga at openjdk.java.net
Wed Feb 3 04:31:53 UTC 2021
We could see NPE on `LinuxCDebugger::loadObjectContainingPC` which is used mainly by the clhsdb `findpc` command. (See [JDK-8248876](https://bugs.openjdk.java.net/browse/JDK-8248876) for more details)
It is caused by PIE executable handling.
Currently we use virtual address of top of PT_LOAD in executable as base address - it is valid for ET_EXEC binary.
However, in case of ET_DYN binary (PIE binary), we should handle it like a shared library.
In GDB, base address of executable would be calculated by dynamic section. SA should also do so.
-------------
Commit messages:
- Remove unnecessary label from debug message
- Calculate base address of ET_DYN executable
Changes: https://git.openjdk.java.net/jdk/pull/2366/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2366&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8248876
Stats: 21 lines in 2 files changed: 8 ins; 4 del; 9 mod
Patch: https://git.openjdk.java.net/jdk/pull/2366.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2366/head:pull/2366
PR: https://git.openjdk.java.net/jdk/pull/2366
More information about the serviceability-dev
mailing list