Integrated: 8368124: Show useful thread names in ASAN reports

Thomas Stuefe stuefe at openjdk.org
Fri Sep 26 06:17:31 UTC 2025


On Fri, 19 Sep 2025 18:00:43 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> 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.
> 
> For a detailed analysis of why the old version, using libpthread's `pthread_setname_np`, is not sufficient for thread names in ASAN, please see the issue description.
> 
> -----
> 
> 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)

This pull request has now been integrated.

Changeset: a6638121
Author:    Thomas Stuefe <stuefe at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/a6638121211afd688a9e25b5cbadf2f1441b1e65
Stats:     50 lines in 5 files changed: 35 ins; 6 del; 9 mod

8368124: Show useful thread names in ASAN reports

Reviewed-by: dholmes, mbaesken

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

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


More information about the hotspot-dev mailing list