RFR: 8368124: Show useful thread names in ASAN reports

Thomas Stuefe stuefe at openjdk.org
Sat Sep 20 07:30:48 UTC 2025


On Linux, ASAN only shows some internal thread designation on reports, e.g. `T49`, which is useless.

This patch adds the ability to see the real internal JVM thread names or user-supplied Java thread names in ASAN. This makes it possible to correlate ASAN reports with hs-err file reports (if ASAN is run with `halt_on_error=0` to give us a chance to get an hs-err file) or with a thread dump done beforehand.

Note that it can only show up to 15 characters, though. Therefore, the patch tries to be smart about names that end in digits: such numbers are preserved such that the truncation happens in the middle of the name, e.g.:

`"MyAllocationWorkerThread#4411"` -> `"MyAllocat..4411"`

This latter improvement now also applies to thread names in gdb, since they are subject to the same limitation.

-----

Some examples from ASAN report: 

Before:

WRITE of size 8 at 0x7b749d2d9190 thread T49


Now:

WRITE of size 8 at 0x7bfc2f0d8380 thread T49 (MyThread#0)



==593899==ERROR: AddressSanitizer: attempting free .. in thread T76 (MyAllocati..29)

-------------

Commit messages:
 - fix comments
 - remove comment duplicates
 - factor out string utility; provide tests
 - be smart about thread names with numbers
 - start

Changes: https://git.openjdk.org/jdk/pull/27395/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27395&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8368124
  Stats: 116 lines in 4 files changed: 112 ins; 2 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/27395.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27395/head:pull/27395

PR: https://git.openjdk.org/jdk/pull/27395


More information about the hotspot-dev mailing list