Skip to content

Commit 888f32f

Browse files
authored
Merge pull request #22989 from thallium/debug-mapper
Add command line option for debug mapper
2 parents 9ee7bd8 + 22e741b commit 888f32f

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

runtime/oti/j9consts.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ extern "C" {
376376
#define J9_EXTENDED_RUNTIME3_MODULE_PACKAGES_INITIALIZED 0x8
377377
#define J9_EXTENDED_RUNTIME3_DISCLAIM_ROM_CLASS_MEMORY 0x10
378378
#define J9_EXTENDED_RUNTIME3_DISCLAIM_RAM_CLASS_MEMORY 0x20
379+
#define J9_EXTENDED_RUNTIME3_USE_DEBUG_LOCAL_MAP 0x40
379380

380381
#define J9_OBJECT_HEADER_AGE_DEFAULT 0xA /* OBJECT_HEADER_AGE_DEFAULT */
381382
#define J9_OBJECT_HEADER_SHAPE_MASK 0xE /* OBJECT_HEADER_SHAPE_MASK */

runtime/oti/jvminit.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,8 @@ enum INIT_STAGE {
415415
#define VMOPT_XXNOCPULOADCOMPATIBILITY "-XX:-CpuLoadCompatibility"
416416
#define VMOPT_XXENABLEEXTENDEDHCR "-XX:+EnableExtendedHCR"
417417
#define VMOPT_XXDISABLEEXTENDEDHCR "-XX:-EnableExtendedHCR"
418+
#define VMOPT_XXUSEDEBUGLOCALMAP "-XX:+UseDebugLocalMap"
419+
#define VMOPT_XXNOUSEDEBUGLOCALMAP "-XX:-UseDebugLocalMap"
418420

419421
#if defined(J9VM_ZOS_3164_INTEROPERABILITY)
420422
#define VMOPT_XXENABLE3164INTEROPERABILITY "-XX:+Enable3164Interoperability"

runtime/vm/jvminit.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4474,6 +4474,16 @@ processVMArgsFromFirstToLast(J9JavaVM * vm)
44744474
}
44754475
}
44764476

4477+
{
4478+
IDATA useDebugLocalMap = FIND_AND_CONSUME_VMARG(EXACT_MATCH, VMOPT_XXUSEDEBUGLOCALMAP, NULL);
4479+
IDATA noUseDebugLocalMap = FIND_AND_CONSUME_VMARG(EXACT_MATCH, VMOPT_XXNOUSEDEBUGLOCALMAP, NULL);
4480+
if (useDebugLocalMap > noUseDebugLocalMap) {
4481+
vm->extendedRuntimeFlags3 |= J9_EXTENDED_RUNTIME3_USE_DEBUG_LOCAL_MAP;
4482+
} else if (useDebugLocalMap < noUseDebugLocalMap) {
4483+
vm->extendedRuntimeFlags3 &= ~J9_EXTENDED_RUNTIME3_USE_DEBUG_LOCAL_MAP;
4484+
}
4485+
}
4486+
44774487
if (FIND_AND_CONSUME_VMARG(EXACT_MATCH, VMOPT_XXKEEPJNIIDS, NULL) != -1) {
44784488
vm->extendedRuntimeFlags2 |= J9_EXTENDED_RUNTIME2_ALWAYS_KEEP_JNI_IDS;
44794489
}
@@ -7971,6 +7981,10 @@ protectedInitializeJavaVM(J9PortLibrary* portLibrary, void * userData)
79717981
}
79727982
#endif
79737983

7984+
if (J9_ARE_ANY_BITS_SET(vm->extendedRuntimeFlags3, J9_EXTENDED_RUNTIME3_USE_DEBUG_LOCAL_MAP)) {
7985+
installDebugLocalMapper(vm);
7986+
}
7987+
79747988
initializeInitialMethods(vm);
79757989

79767990
if (JNI_OK != (stageRC = runInitializationStage(vm, ABOUT_TO_BOOTSTRAP))) {

0 commit comments

Comments
 (0)