Skip to content

Commit 7dab5fe

Browse files
vieirojerboaa
authored andcommitted
8294316: SA core file support is broken on macosx-x64 starting with macOS 12.x
Reviewed-by: sgehwolf Backport-of: eaa475f72ced51cf0f0d0bce9ff1265bfb81ab31
1 parent 52c8606 commit 7dab5fe

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

src/jdk.hotspot.agent/macosx/native/libsaproc/ps_core.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -622,11 +622,16 @@ static bool read_core_segments(struct ps_prochandle* ph) {
622622
print_debug("failed to read LC_SEGMENT_64 i = %d!\n", i);
623623
goto err;
624624
}
625-
if (add_map_info(ph, fd, segcmd.fileoff, segcmd.vmaddr, segcmd.vmsize) == NULL) {
626-
print_debug("Failed to add map_info at i = %d\n", i);
627-
goto err;
625+
// The base of the library is offset by a random amount which ends up as a load command with a
626+
// filesize of 0. This must be ignored otherwise the base address of the library is wrong.
627+
if (segcmd.filesize != 0) {
628+
if (add_map_info(ph, fd, segcmd.fileoff, segcmd.vmaddr, segcmd.vmsize) == NULL) {
629+
print_debug("Failed to add map_info at i = %d\n", i);
630+
goto err;
631+
}
628632
}
629-
print_debug("LC_SEGMENT_64 added: nsects=%d fileoff=0x%llx vmaddr=0x%llx vmsize=0x%llx filesize=0x%llx %s\n",
633+
print_debug("LC_SEGMENT_64 %s: nsects=%d fileoff=0x%llx vmaddr=0x%llx vmsize=0x%llx filesize=0x%llx %s\n",
634+
segcmd.filesize == 0 ? "with filesize == 0 ignored" : "added",
630635
segcmd.nsects, segcmd.fileoff, segcmd.vmaddr, segcmd.vmsize,
631636
segcmd.filesize, &segcmd.segname[0]);
632637
} else if (lcmd.cmd == LC_THREAD || lcmd.cmd == LC_UNIXTHREAD) {

test/hotspot/jtreg/ProblemList.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,22 @@ runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
164164

165165
serviceability/dcmd/gc/RunFinalizationTest.java 8227120 generic-all
166166
serviceability/sa/ClhsdbAttach.java 8193639 solaris-all
167-
serviceability/sa/ClhsdbCDSCore.java 8294316,8193639,8267433 solaris-all,macosx-x64
167+
serviceability/sa/ClhsdbCDSCore.java 8193639,8267433 solaris-all,macosx-x64
168168
serviceability/sa/ClhsdbCDSJstackPrintAll.java 8193639 solaris-all
169169
serviceability/sa/CDSJMapClstats.java 8193639 solaris-all
170170
serviceability/sa/ClhsdbField.java 8193639 solaris-all
171-
serviceability/sa/ClhsdbFindPC.java 8294316,8193639,8267433 solaris-all,macosx-x64
171+
serviceability/sa/ClhsdbFindPC.java 8193639,8267433 solaris-all,macosx-x64
172172
serviceability/sa/ClhsdbFlags.java 8193639 solaris-all
173173
serviceability/sa/ClhsdbInspect.java 8193639 solaris-all
174174
serviceability/sa/ClhsdbJdis.java 8193639 solaris-all
175175
serviceability/sa/ClhsdbJhisto.java 8193639 solaris-all
176176
serviceability/sa/ClhsdbJstack.java 8193639 solaris-all
177177
serviceability/sa/ClhsdbLongConstant.java 8193639 solaris-all
178-
serviceability/sa/ClhsdbPmap.java 8294316,8193639,8267433 solaris-all,macosx-x64
178+
serviceability/sa/ClhsdbPmap.java 8193639,8267433 solaris-all,macosx-x64
179179
serviceability/sa/ClhsdbPrintAll.java 8193639 solaris-all
180180
serviceability/sa/ClhsdbPrintAs.java 8193639 solaris-all
181181
serviceability/sa/ClhsdbPrintStatics.java 8193639 solaris-all
182-
serviceability/sa/ClhsdbPstack.java 8294316,8193639,8267433 solaris-all,macosx-x64
182+
serviceability/sa/ClhsdbPstack.java 8193639,8267433 solaris-all,macosx-x64
183183
serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java 8193639 solaris-all
184184
serviceability/sa/ClhsdbScanOops.java 8193639 solaris-all
185185
serviceability/sa/ClhsdbSource.java 8193639 solaris-all
@@ -203,8 +203,8 @@ serviceability/sa/TestInstanceKlassSize.java 8193639 solaris-all
203203
serviceability/sa/TestInstanceKlassSizeForInterface.java 8193639 solaris-all
204204
serviceability/sa/TestIntConstant.java 8193639 solaris-all
205205
serviceability/sa/TestJhsdbJstackLock.java 8193639 solaris-all
206-
serviceability/sa/TestJmapCore.java 8294316,8193639,8267433 solaris-all,macosx-x64
207-
serviceability/sa/TestJmapCoreMetaspace.java 8294316,8193639,8267433 solaris-all,macosx-x64
206+
serviceability/sa/TestJmapCore.java 8193639,8267433 solaris-all,macosx-x64
207+
serviceability/sa/TestJmapCoreMetaspace.java 8193639,8267433 solaris-all,macosx-x64
208208
serviceability/sa/TestPrintMdo.java 8193639 solaris-all
209209
serviceability/sa/TestRevPtrsForInvokeDynamic.java 8191270 generic-all
210210
serviceability/sa/TestType.java 8193639 solaris-all

0 commit comments

Comments
 (0)