From 917ef57d75ae7d9fd593230c8de7308c9e923f60 Mon Sep 17 00:00:00 2001 From: shreyasm-dev <62489066+shreyasm-dev@users.noreply.github.com> Date: Wed, 26 Jul 2023 12:07:57 +0000 Subject: [PATCH] Add jnat macro --- .vscode/settings.json | 3 + Cargo.toml | 5 +- README.md | 6 +- integration/java/hs_err_pid96124.log | 884 ++++++++++++++++++++ integration/tests/lib/call_method.rs | 7 +- integration/tests/lib/call_static_method.rs | 14 +- integration/tests/lib/hello.rs | 5 +- jnat-macros/.gitignore | 2 + jnat-macros/Cargo.toml | 14 + jnat-macros/src/lib.rs | 48 ++ src/lib.rs | 3 + 11 files changed, 974 insertions(+), 17 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 integration/java/hs_err_pid96124.log create mode 100644 jnat-macros/.gitignore create mode 100644 jnat-macros/Cargo.toml create mode 100644 jnat-macros/src/lib.rs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b48948a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "rust-analyzer.showUnlinkedFileNotification": false +} diff --git a/Cargo.toml b/Cargo.toml index cbf6efa..3b7517c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "jnat" -version = "0.4.3" +version = "0.5.0" edition = "2021" license = "MIT" description = "A wrapper around the jni crate" @@ -11,6 +11,7 @@ documentation = "https://docs.rs/jnat/" [dependencies] jni = "0.21.1" +jnat-macros = { path = "jnat-macros", optional = true } [[test]] name = "integration" @@ -23,5 +24,5 @@ log = "0.4.19" pretty_env_logger = "0.5.0" [features] -default = ["jni"] +default = ["jni", "jnat-macros"] jni = [] diff --git a/README.md b/README.md index 24070e2..d980798 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,13 @@ Add the following to `src/lib.rs`: ```rust use jnat::{ env::{Class, Env}, + jnat_macros::jnat, jni::{objects::JClass, JNIEnv}, // jni crate, re-exported by jnat signature::{Signature, Type}, }; -#[no_mangle] -pub extern "system" fn Java_HelloWorld_caller(env: JNIEnv, class: JClass) { +#[jnat(HelloWorld)] +fn caller(env: JNIEnv, class: JClass) { let mut env = env; let mut env = Env::new(&mut env); let mut class = Class::new(&mut env, class); @@ -62,3 +63,4 @@ Compile the java file with `javac -h . HelloWorld.java`. Then, run `java -Djava. ## Notes - Jnat re-exports jni by default. If you want to use a different version of jni, you can disable either the default features or the `jni` feature. +- Jnat exports a macro, `jnat::jnat_macros::jnat` (seen in the example above), which is used to generate the `Java_HelloWorld_caller` function. This macro can be disabled by disabling either the default features or the `jni-macros` feature. Note that the macro keeps the original function to prevent unintuitive behavior (so you can, in your Rust code, call just `example()` instead of `Java_org_example_Class_example()` while still allowing Java to call it). diff --git a/integration/java/hs_err_pid96124.log b/integration/java/hs_err_pid96124.log new file mode 100644 index 0000000..75eaaf5 --- /dev/null +++ b/integration/java/hs_err_pid96124.log @@ -0,0 +1,884 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGBUS (0xa) at pc=0x0000000108c7537c, pid=96124, tid=8451 +# +# JRE version: OpenJDK Runtime Environment (20.0.1+9) (build 20.0.1+9-29) +# Java VM: OpenJDK 64-Bit Server VM (20.0.1+9-29, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64) +# Problematic frame: +# V [libjvm.dylib+0x50537c] jni_GetObjectClass+0x118 +# +# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Djava.library.path=out Hello + +Host: "Mac14,9" arm64, 10 cores, 32G, Darwin 22.5.0, macOS 13.4.1 (22F82) +Time: Wed Jul 26 11:38:46 2023 GMT elapsed time: 0.650937 seconds (0d 0h 0m 0s) + +--------------- T H R E A D --------------- + +Current thread (0x0000000136008800): JavaThread "main" [_thread_in_vm, id=8451, stack(0x000000016dca0000,0x000000016dea3000)] + +Stack: [0x000000016dca0000,0x000000016dea3000], sp=0x000000016dea19d0, free space=2054k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [libjvm.dylib+0x50537c] jni_GetObjectClass+0x118 +C [libhello.dylib+0x3b80] jni::wrapper::jnienv::JNIEnv::get_object_class::hca7fc1a1a53e0581+0x584 +C [libhello.dylib+0x3dd0] jni::wrapper::jnienv::JNIEnv::get_string::h0ffc9d917abae95a+0x98 +C [libhello.dylib+0x1b74] jnat::env::Env::get_string::hde8f2eca9637442a+0x38 +C [libhello.dylib+0x1340] Java_Hello_hello+0x48 +j Hello.hello(Ljava/lang/String;)Ljava/lang/String;+0 +j Hello.main([Ljava/lang/String;)V+5 +v ~StubRoutines::call_stub 0x0000000118c30140 +V [libjvm.dylib+0x4a0ba4] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x38c +V [libjvm.dylib+0x50da68] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*)+0x158 +V [libjvm.dylib+0x511238] jni_CallStaticVoidMethod+0x114 +C [libjli.dylib+0x758c] JavaMain+0x9b8 +C [libjli.dylib+0x98f8] ThreadJavaMain+0xc +C [libsystem_pthread.dylib+0x6fa8] _pthread_start+0x94 +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +j Hello.hello(Ljava/lang/String;)Ljava/lang/String;+0 +j Hello.main([Ljava/lang/String;)V+5 +v ~StubRoutines::call_stub 0x0000000118c30140 + +siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: 0x0000000808a35bec + +Registers: + x0=0x0000000800000768 x1=0x0000000800432fb0 x2=0xfffffffffffffff8 x3=0x000000016dea22f8 + x4=0xffffffff9b48d3b0 x5=0x0000000000000010 x6=0x0000000000000002 x7=0x0000000136008800 + x8=0x0000000808a35b7c x9=0x0000000000000000 x10=0x0000000800000000 x11=0x0000000000000000 +x12=0x0000000107803f2c x13=0x0000000000000001 x14=0x0000000107800000 x15=0x0000000000000048 +x16=0x0000000183da0d04 x17=0x0000000000000000 x18=0x0000000000000000 x19=0x0000000136008800 +x20=0x0000000000000001 x21=0x0000000800432fb0 x22=0x0000000109325000 x23=0x0000000118c43a40 +x24=0x000000016dea2b10 x25=0x0000000000000001 x26=0x000000012dc00568 x27=0x0000000000000000 +x28=0x0000000136008800 fp=0x000000016dea1a10 lr=0x0000000108c75350 sp=0x000000016dea19d0 +pc=0x0000000108c7537c cpsr=0x0000000040001000 + +Register to memory mapping: + + x0=0x0000000800000768 is pointing into metadata + x1={method} {0x0000000800432fb0} 'findNative' '(Ljava/lang/ClassLoader;Ljava/lang/String;)J' in 'java/lang/ClassLoader' + x2=0xfffffffffffffff8 is an unknown value + x3=0x000000016dea22f8 is pointing into the stack for thread: 0x0000000136008800 + x4=0xffffffff9b48d3b0 is an unknown value + x5=0x0000000000000010 is an unknown value + x6=0x0000000000000002 is an unknown value + x7=0x0000000136008800 is a thread + x8=0x0000000808a35b7c is an unknown value + x9=0x0 is NULL +x10=0x0000000800000000 is pointing into metadata +x11=0x0 is NULL +x12=0x0000000107803f2c points into unknown readable memory: 00 00 00 00 +x13=0x0000000000000001 is an unknown value +x14=0x0000000107800000 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 +x15=0x0000000000000048 is an unknown value +x16=0x0000000183da0d04: pthread_jit_write_protect_np+0 in /usr/lib/system/libsystem_pthread.dylib at 0x0000000183d99000 +x17=0x0 is NULL +x18=0x0 is NULL +x19=0x0000000136008800 is a thread +x20=0x0000000000000001 is an unknown value +x21={method} {0x0000000800432fb0} 'findNative' '(Ljava/lang/ClassLoader;Ljava/lang/String;)J' in 'java/lang/ClassLoader' +x22=0x0000000109325000: _dyld_private+0 in /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/server/libjvm.dylib at 0x0000000108770000 +x23=0x0000000118c43a40 is at code_begin+0 in an Interpreter codelet +method entry point (kind = zerolocals) [0x0000000118c43a40, 0x0000000118c43d50] 784 bytes +x24=0x000000016dea2b10 is pointing into the stack for thread: 0x0000000136008800 +x25=0x0000000000000001 is an unknown value +x26=0x000000012dc00568 is pointing into metadata +x27=0x0 is NULL +x28=0x0000000136008800 is a thread + + +Top of Stack: (sp=0x000000016dea19d0) +0x000000016dea19d0: 0000000136008800 0000000000000000 +0x000000016dea19e0: 000000016dea1a10 00000001026986f8 +0x000000016dea19f0: 0000000000000000 00000001093735e8 +0x000000016dea1a00: 000000016dea2a98 0000000118c42a3c +0x000000016dea1a10: 000000016dea2510 0000000102693b80 +0x000000016dea1a20: 000000013561e920 c9cbfb9336a300d5 +0x000000016dea1a30: 0000000000000000 0000000000000005 +0x000000016dea1a40: 0000000107804418 0000000136008ae0 +0x000000016dea1a50: 0000000800432fb0 000000003573b870 +0x000000016dea1a60: 0000000000000000 0000000108c75264 +0x000000016dea1a70: 0000000800000001 000000010932efa0 +0x000000016dea1a80: 0000000136008ae0 0000000000000000 +0x000000016dea1a90: 0000000136008ae0 0000000136008ae0 +0x000000016dea1aa0: 0000000000000000 0000000000000000 +0x000000016dea1ab0: 0000000000000001 0000000000000000 +0x000000016dea1ac0: 0000000000000001 000000016dea2928 +0x000000016dea1ad0: 000000016dea26c0 000000016dea2810 +0x000000016dea1ae0: 00000001026e8138 000000016dea2928 +0x000000016dea1af0: 000000016dea2928 0000000108c84310 +0x000000016dea1b00: 0000000108c728a0 0000000108c72a80 +0x000000016dea1b10: 0000000108c72d38 0000000108c72ee8 +0x000000016dea1b20: 0000000108c732c8 0000000108c73468 +0x000000016dea1b30: 0000000000000005 0000000108c73800 +0x000000016dea1b40: 0000000000000000 0000000108c73c80 +0x000000016dea1b50: 0000000108c73df8 0000000108c73f80 +0x000000016dea1b60: 0000000108c74160 0000000108c74338 +0x000000016dea1b70: 0000000108c744e4 0000000108c75014 +0x000000016dea1b80: 0000000108c74dc8 0000000108c747c8 +0x000000016dea1b90: 0000000000000005 0000000108c75480 +0x000000016dea1ba0: 0000000000000000 0000000108c7664c +0x000000016dea1bb0: 0000000108c77854 0000000108c78a4c +0x000000016dea1bc0: 0000000108c75e34 0000000108c7705c + +Instructions: (pc=0x0000000108c7537c) +0x0000000108c7527c: aa0003f6 d10b8013 9102e008 b8bfc108 +0x0000000108c7528c: 129bd589 0b090108 7100051f 54000068 +0x0000000108c7529c: aa1303e0 97febaee b40000f3 b9429a74 +0x0000000108c752ac: 340000d4 b9029a7f 52800000 940bbebe +0x0000000108c752bc: 14000002 52800014 b0003748 91384108 +0x0000000108c752cc: 39400108 910dd269 528000ca 889ffd2a +0x0000000108c752dc: 340005c8 910de268 f8bfc108 370005e8 +0x0000000108c752ec: b9437268 721e051f 54000060 aa1303e0 +0x0000000108c752fc: 97febed3 910dd268 528000c9 889ffd09 +0x0000000108c7530c: a9007ff3 f9400668 b4000068 910003e0 +0x0000000108c7531c: 940cb880 aa1603e0 aa1503e1 d503201f +0x0000000108c7532c: 90003596 37000095 f9400ac8 aa1503e0 +0x0000000108c7533c: 14000004 d10006a0 900035a8 f947f508 +0x0000000108c7534c: d63f0100 b0003748 912f8508 39400108 +0x0000000108c7535c: 34000348 b9400808 b00035a9 91232129 +0x0000000108c7536c: f940012a b9400929 9ac92108 8b0a0108 +0x0000000108c7537c: f9403900 b4000280 f9400ac8 d63f0100 +0x0000000108c7538c: aa0003e1 14000011 d5033bbf 910de268 +0x0000000108c7539c: f8bfc108 3607fa68 aa1303e0 52800021 +0x0000000108c753ac: 52800002 940dd4ed b9437268 721e051f +0x0000000108c753bc: 54fff9e1 17ffffd0 f9400408 f9403900 +0x0000000108c753cc: b5fffdc0 d2800001 aa1303e0 52800002 +0x0000000108c753dc: 94010c82 aa0003f5 d503201f f94007e8 +0x0000000108c753ec: b4000068 910003e0 940cb86a f9406e76 +0x0000000108c753fc: f9400ac8 f9400109 b4000089 aa1603e0 +0x0000000108c7540c: 97fcfc5c f9400ac8 f94006c9 f9000928 +0x0000000108c7541c: f9400ec8 f94006c9 f9000d28 f94012c8 +0x0000000108c7542c: f94006c9 f9001128 910b0260 97f9fc9a +0x0000000108c7543c: d5033bbf 910dd268 52800089 889ffd09 +0x0000000108c7544c: b40000f3 b9429a68 6b14011f 54000080 +0x0000000108c7545c: b9029a74 aa1403e0 940bbe53 aa1503e0 +0x0000000108c7546c: a9447bfd a9434ff4 a94257f6 910143ff + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x0000000136008800 is a thread +stack at sp + 1 slots: 0x0 is NULL +stack at sp + 2 slots: 0x000000016dea1a10 is pointing into the stack for thread: 0x0000000136008800 +stack at sp + 3 slots: 0x00000001026986f8: _ZN4core3cmp10PartialOrd2le17hdb04afdfc8105233E+0x20 in /Users/sm/jnat/integration/java/out/libhello.dylib at 0x0000000102690000 +stack at sp + 4 slots: 0x0 is NULL +stack at sp + 5 slots: 0x00000001093735e8: _ZN19TemplateInterpreter13_active_tableE+0 in /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/server/libjvm.dylib at 0x0000000108770000 +stack at sp + 6 slots: 0x000000016dea2a98 is pointing into the stack for thread: 0x0000000136008800 +stack at sp + 7 slots: 0x0000000118c42a3c is at code_begin+60 in an Interpreter codelet +result handlers for native calls [0x0000000118c42a00, 0x0000000118c42a48] 72 bytes + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000000013563b0a0, length=10, elements={ +0x0000000136008800, 0x00000001360ade00, 0x000000013581d600, 0x0000000136808200, +0x00000001360b0600, 0x00000001360ac800, 0x0000000135821c00, 0x0000000135822200, +0x0000000135822800, 0x0000000135827000 +} + +Java Threads: ( => current thread ) +=>0x0000000136008800 JavaThread "main" [_thread_in_vm, id=8451, stack(0x000000016dca0000,0x000000016dea3000)] + 0x00000001360ade00 JavaThread "Reference Handler" daemon [_thread_blocked, id=31747, stack(0x000000016ec98000,0x000000016ee9b000)] + 0x000000013581d600 JavaThread "Finalizer" daemon [_thread_blocked, id=22787, stack(0x000000016eea4000,0x000000016f0a7000)] + 0x0000000136808200 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=31235, stack(0x000000016f0b0000,0x000000016f2b3000)] + 0x00000001360b0600 JavaThread "Service Thread" daemon [_thread_blocked, id=30979, stack(0x000000016f2bc000,0x000000016f4bf000)] + 0x00000001360ac800 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=23299, stack(0x000000016f4c8000,0x000000016f6cb000)] + 0x0000000135821c00 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=23555, stack(0x000000016f6d4000,0x000000016f8d7000)] + 0x0000000135822200 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=24067, stack(0x000000016f8e0000,0x000000016fae3000)] + 0x0000000135822800 JavaThread "Notification Thread" daemon [_thread_blocked, id=24579, stack(0x000000016faec000,0x000000016fcef000)] + 0x0000000135827000 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=25091, stack(0x000000016ff04000,0x0000000170107000)] + +Other Threads: + 0x00000001357576e0 VMThread "VM Thread" [stack: 0x000000016e8e8000,0x000000016eaeb000] [id=17923] + 0x00000001356381a0 WatcherThread "VM Periodic Task Thread" [stack: 0x000000016fcf8000,0x000000016fefb000] [id=30211] + 0x0000000135715880 WorkerThread "GC Thread#0" [stack: 0x000000016deac000,0x000000016e0af000] [id=14595] + 0x0000000135716770 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000016e0b8000,0x000000016e2bb000] [id=14083] + 0x0000000135717520 WorkerThread "G1 Conc#0" [stack: 0x000000016e2c4000,0x000000016e4c7000] [id=12803] + 0x0000000135736780 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000016e4d0000,0x000000016e6d3000] [id=16387] + 0x00000001357375d0 ConcurrentGCThread "G1 Service" [stack: 0x000000016e6dc000,0x000000016e8df000] [id=16643] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000600000000, size: 8192 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800c6c000-0x0000000800c6c000), size 13025280, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000801000000-0x0000000841000000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CardTable entry size: 512 + Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 32 size 80 Howl #buckets 8 coarsen threshold 7372 Howl Bitmap #cards 1024 size 144 coarsen threshold 921 Card regions per heap region 1 cards per card region 8192 + CPUs: 10 total, 10 available + Memory: 32768M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 4M + Heap Min Capacity: 8M + Heap Initial Capacity: 512M + Heap Max Capacity: 8G + Pre-touch: Disabled + Parallel Workers: 9 + Concurrent Workers: 2 + Concurrent Refinement Workers: 9 + Periodic GC: Disabled + +Heap: + garbage-first heap total 532480K, used 4064K [0x0000000600000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 0 survivors (0K) + Metaspace used 75K, committed 320K, reserved 1114112K + class space used 3K, committed 128K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x0000000600000000, 0x0000000600000000, 0x0000000600400000| 0%| F| |TAMS 0x0000000600000000| PB 0x0000000600000000| Untracked +| 1|0x0000000600400000, 0x0000000600400000, 0x0000000600800000| 0%| F| |TAMS 0x0000000600400000| PB 0x0000000600400000| Untracked +| 2|0x0000000600800000, 0x0000000600800000, 0x0000000600c00000| 0%| F| |TAMS 0x0000000600800000| PB 0x0000000600800000| Untracked +| 3|0x0000000600c00000, 0x0000000600c00000, 0x0000000601000000| 0%| F| |TAMS 0x0000000600c00000| PB 0x0000000600c00000| Untracked +| 4|0x0000000601000000, 0x0000000601000000, 0x0000000601400000| 0%| F| |TAMS 0x0000000601000000| PB 0x0000000601000000| Untracked +| 5|0x0000000601400000, 0x0000000601400000, 0x0000000601800000| 0%| F| |TAMS 0x0000000601400000| PB 0x0000000601400000| Untracked +| 6|0x0000000601800000, 0x0000000601800000, 0x0000000601c00000| 0%| F| |TAMS 0x0000000601800000| PB 0x0000000601800000| Untracked +| 7|0x0000000601c00000, 0x0000000601c00000, 0x0000000602000000| 0%| F| |TAMS 0x0000000601c00000| PB 0x0000000601c00000| Untracked +| 8|0x0000000602000000, 0x0000000602000000, 0x0000000602400000| 0%| F| |TAMS 0x0000000602000000| PB 0x0000000602000000| Untracked +| 9|0x0000000602400000, 0x0000000602400000, 0x0000000602800000| 0%| F| |TAMS 0x0000000602400000| PB 0x0000000602400000| Untracked +| 10|0x0000000602800000, 0x0000000602800000, 0x0000000602c00000| 0%| F| |TAMS 0x0000000602800000| PB 0x0000000602800000| Untracked +| 11|0x0000000602c00000, 0x0000000602c00000, 0x0000000603000000| 0%| F| |TAMS 0x0000000602c00000| PB 0x0000000602c00000| Untracked +| 12|0x0000000603000000, 0x0000000603000000, 0x0000000603400000| 0%| F| |TAMS 0x0000000603000000| PB 0x0000000603000000| Untracked +| 13|0x0000000603400000, 0x0000000603400000, 0x0000000603800000| 0%| F| |TAMS 0x0000000603400000| PB 0x0000000603400000| Untracked +| 14|0x0000000603800000, 0x0000000603800000, 0x0000000603c00000| 0%| F| |TAMS 0x0000000603800000| PB 0x0000000603800000| Untracked +| 15|0x0000000603c00000, 0x0000000603c00000, 0x0000000604000000| 0%| F| |TAMS 0x0000000603c00000| PB 0x0000000603c00000| Untracked +| 16|0x0000000604000000, 0x0000000604000000, 0x0000000604400000| 0%| F| |TAMS 0x0000000604000000| PB 0x0000000604000000| Untracked +| 17|0x0000000604400000, 0x0000000604400000, 0x0000000604800000| 0%| F| |TAMS 0x0000000604400000| PB 0x0000000604400000| Untracked +| 18|0x0000000604800000, 0x0000000604800000, 0x0000000604c00000| 0%| F| |TAMS 0x0000000604800000| PB 0x0000000604800000| Untracked +| 19|0x0000000604c00000, 0x0000000604c00000, 0x0000000605000000| 0%| F| |TAMS 0x0000000604c00000| PB 0x0000000604c00000| Untracked +| 20|0x0000000605000000, 0x0000000605000000, 0x0000000605400000| 0%| F| |TAMS 0x0000000605000000| PB 0x0000000605000000| Untracked +| 21|0x0000000605400000, 0x0000000605400000, 0x0000000605800000| 0%| F| |TAMS 0x0000000605400000| PB 0x0000000605400000| Untracked +| 22|0x0000000605800000, 0x0000000605800000, 0x0000000605c00000| 0%| F| |TAMS 0x0000000605800000| PB 0x0000000605800000| Untracked +| 23|0x0000000605c00000, 0x0000000605c00000, 0x0000000606000000| 0%| F| |TAMS 0x0000000605c00000| PB 0x0000000605c00000| Untracked +| 24|0x0000000606000000, 0x0000000606000000, 0x0000000606400000| 0%| F| |TAMS 0x0000000606000000| PB 0x0000000606000000| Untracked +| 25|0x0000000606400000, 0x0000000606400000, 0x0000000606800000| 0%| F| |TAMS 0x0000000606400000| PB 0x0000000606400000| Untracked +| 26|0x0000000606800000, 0x0000000606800000, 0x0000000606c00000| 0%| F| |TAMS 0x0000000606800000| PB 0x0000000606800000| Untracked +| 27|0x0000000606c00000, 0x0000000606c00000, 0x0000000607000000| 0%| F| |TAMS 0x0000000606c00000| PB 0x0000000606c00000| Untracked +| 28|0x0000000607000000, 0x0000000607000000, 0x0000000607400000| 0%| F| |TAMS 0x0000000607000000| PB 0x0000000607000000| Untracked +| 29|0x0000000607400000, 0x0000000607400000, 0x0000000607800000| 0%| F| |TAMS 0x0000000607400000| PB 0x0000000607400000| Untracked +| 30|0x0000000607800000, 0x0000000607800000, 0x0000000607c00000| 0%| F| |TAMS 0x0000000607800000| PB 0x0000000607800000| Untracked +| 31|0x0000000607c00000, 0x0000000607c00000, 0x0000000608000000| 0%| F| |TAMS 0x0000000607c00000| PB 0x0000000607c00000| Untracked +| 32|0x0000000608000000, 0x0000000608000000, 0x0000000608400000| 0%| F| |TAMS 0x0000000608000000| PB 0x0000000608000000| Untracked +| 33|0x0000000608400000, 0x0000000608400000, 0x0000000608800000| 0%| F| |TAMS 0x0000000608400000| PB 0x0000000608400000| Untracked +| 34|0x0000000608800000, 0x0000000608800000, 0x0000000608c00000| 0%| F| |TAMS 0x0000000608800000| PB 0x0000000608800000| Untracked +| 35|0x0000000608c00000, 0x0000000608c00000, 0x0000000609000000| 0%| F| |TAMS 0x0000000608c00000| PB 0x0000000608c00000| Untracked +| 36|0x0000000609000000, 0x0000000609000000, 0x0000000609400000| 0%| F| |TAMS 0x0000000609000000| PB 0x0000000609000000| Untracked +| 37|0x0000000609400000, 0x0000000609400000, 0x0000000609800000| 0%| F| |TAMS 0x0000000609400000| PB 0x0000000609400000| Untracked +| 38|0x0000000609800000, 0x0000000609800000, 0x0000000609c00000| 0%| F| |TAMS 0x0000000609800000| PB 0x0000000609800000| Untracked +| 39|0x0000000609c00000, 0x0000000609c00000, 0x000000060a000000| 0%| F| |TAMS 0x0000000609c00000| PB 0x0000000609c00000| Untracked +| 40|0x000000060a000000, 0x000000060a000000, 0x000000060a400000| 0%| F| |TAMS 0x000000060a000000| PB 0x000000060a000000| Untracked +| 41|0x000000060a400000, 0x000000060a400000, 0x000000060a800000| 0%| F| |TAMS 0x000000060a400000| PB 0x000000060a400000| Untracked +| 42|0x000000060a800000, 0x000000060a800000, 0x000000060ac00000| 0%| F| |TAMS 0x000000060a800000| PB 0x000000060a800000| Untracked +| 43|0x000000060ac00000, 0x000000060ac00000, 0x000000060b000000| 0%| F| |TAMS 0x000000060ac00000| PB 0x000000060ac00000| Untracked +| 44|0x000000060b000000, 0x000000060b000000, 0x000000060b400000| 0%| F| |TAMS 0x000000060b000000| PB 0x000000060b000000| Untracked +| 45|0x000000060b400000, 0x000000060b400000, 0x000000060b800000| 0%| F| |TAMS 0x000000060b400000| PB 0x000000060b400000| Untracked +| 46|0x000000060b800000, 0x000000060b800000, 0x000000060bc00000| 0%| F| |TAMS 0x000000060b800000| PB 0x000000060b800000| Untracked +| 47|0x000000060bc00000, 0x000000060bc00000, 0x000000060c000000| 0%| F| |TAMS 0x000000060bc00000| PB 0x000000060bc00000| Untracked +| 48|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked +| 49|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked +| 50|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked +| 51|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked +| 52|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked +| 53|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked +| 54|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked +| 55|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked +| 56|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked +| 57|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked +| 58|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked +| 59|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked +| 60|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked +| 61|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked +| 62|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked +| 63|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked +| 64|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked +| 65|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked +| 66|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked +| 67|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked +| 68|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked +| 69|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked +| 70|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked +| 71|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked +| 72|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked +| 73|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked +| 74|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked +| 75|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked +| 76|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked +| 77|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked +| 78|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked +| 79|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked +| 80|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked +| 81|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked +| 82|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked +| 83|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked +| 84|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked +| 85|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked +| 86|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked +| 87|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked +| 88|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked +| 89|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked +| 90|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked +| 91|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked +| 92|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked +| 93|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked +| 94|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked +| 95|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked +| 96|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked +| 97|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked +| 98|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked +| 99|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked +| 100|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked +| 101|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked +| 102|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked +| 103|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked +| 104|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked +| 105|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked +| 106|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked +| 107|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked +| 108|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked +| 109|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked +| 110|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked +| 111|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked +| 112|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked +| 113|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked +| 114|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked +| 115|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked +| 116|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked +| 117|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked +| 118|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked +| 119|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked +| 120|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked +| 121|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked +| 122|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked +| 123|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked +| 124|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked +| 125|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked +| 126|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked +| 127|0x000000061fc00000, 0x000000061fd70ab8, 0x0000000620000000| 36%| E| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Complete +|2046|0x00000007ff800000, 0x00000007ffb78000, 0x00000007ffc00000| 86%|OA| |TAMS 0x00000007ff800000| PB 0x00000007ff800000| Untracked +|2047|0x00000007ffc00000, 0x00000007ffc80000, 0x0000000800000000| 12%|CA| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked + +Card table byte_map: [0x00000001216fc000,0x00000001226fc000] _byte_map_base: 0x000000011e6fc000 + +Marking Bits: (CMBitMap*) 0x0000000136015010 + Bits: [0x00000001236fc000, 0x000000012b6fc000) + +Polling page: 0x0000000102300000 + +Metaspace: + +Usage: + Non-class: 71.49 KB used. + Class: 3.70 KB used. + Both: 75.19 KB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 192.00 KB ( <1%) committed, 1 nodes. + Class space: 1.00 GB reserved, 128.00 KB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 320.00 KB ( <1%) committed. + +Chunk freelists: + Non-Class: 4.00 MB + Class: 3.75 MB + Both: 7.74 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 4. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 5. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 5. +num_chunk_merges: 0. +num_chunk_splits: 2. +num_chunks_enlarged: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=0Kb max_used=0Kb free=120032Kb + bounds [0x00000001191c4000, 0x0000000119434000, 0x00000001206fc000] +CodeHeap 'profiled nmethods': size=120016Kb used=4Kb max_used=4Kb free=120011Kb + bounds [0x00000001116fc000, 0x000000011196c000, 0x0000000118c30000] +CodeHeap 'non-nmethods': size=5712Kb used=1085Kb max_used=1094Kb free=4626Kb + bounds [0x0000000118c30000, 0x0000000118ea0000, 0x00000001191c4000] + total_blobs=293 nmethods=4 adapters=205 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (8 events): +Event: 0.015 Thread 0x0000000135822200 1 3 java.lang.Object:: (1 bytes) +Event: 0.015 Thread 0x0000000135822200 nmethod 1 0x00000001116fc010 code [0x00000001116fc180, 0x00000001116fc298] +Event: 0.015 Thread 0x0000000135822200 2 3 java.lang.String::coder (15 bytes) +Event: 0.015 Thread 0x0000000135822200 nmethod 2 0x00000001116fc310 code [0x00000001116fc480, 0x00000001116fc5d0] +Event: 0.016 Thread 0x0000000135822200 3 3 java.lang.String::hashCode (60 bytes) +Event: 0.016 Thread 0x0000000135822200 nmethod 3 0x00000001116fc690 code [0x00000001116fc880, 0x00000001116fcc20] +Event: 0.016 Thread 0x0000000135822200 4 3 java.lang.String::length (11 bytes) +Event: 0.016 Thread 0x0000000135822200 nmethod 4 0x00000001116fcd10 code [0x00000001116fcec0, 0x00000001116fd088] + +GC Heap History (0 events): +No events + +Dll operation events (4 events): +Event: 0.003 Loaded shared library /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libjava.dylib +Event: 0.016 Loading shared library /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libhello.dylib failed, dlopen(/Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libhello.dylib, 0x0001): tried: '/Users/sm/Library +Event: 0.016 Loading shared library /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libhello.jnilib failed, dlopen(/Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libhello.jnilib, 0x0001): tried: '/Users/sm/Libra +Event: 0.647 Loaded shared library /Users/sm/jnat/integration/java/out/libhello.dylib + +Deoptimization events (0 events): +No events + +Classes loaded (8 events): +Event: 0.012 Loading class sun/nio/cs/UTF_8$Encoder +Event: 0.012 Loading class sun/nio/cs/UTF_8$Encoder done +Event: 0.015 Loading class jdk/internal/vm/PostVMInitHook +Event: 0.015 Loading class jdk/internal/vm/PostVMInitHook done +Event: 0.015 Loading class jdk/internal/loader/URLClassPath$FileLoader +Event: 0.015 Loading class jdk/internal/loader/URLClassPath$FileLoader done +Event: 0.015 Loading class jdk/internal/loader/URLClassPath$FileLoader$1 +Event: 0.015 Loading class jdk/internal/loader/URLClassPath$FileLoader$1 done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (0 events): +No events + +VM Operations (0 events): +No events + +Events (20 events): +Event: 0.002 Protecting memory [0x000000016dca0000,0x000000016dcac000] with protection modes 0 +Event: 0.008 Thread 0x0000000136008800 Thread added: 0x0000000136008800 +Event: 0.013 Thread 0x00000001360ade00 Thread added: 0x00000001360ade00 +Event: 0.013 Protecting memory [0x000000016ec98000,0x000000016eca4000] with protection modes 0 +Event: 0.013 Thread 0x000000013581d600 Thread added: 0x000000013581d600 +Event: 0.013 Protecting memory [0x000000016eea4000,0x000000016eeb0000] with protection modes 0 +Event: 0.013 Thread 0x0000000136808200 Thread added: 0x0000000136808200 +Event: 0.013 Protecting memory [0x000000016f0b0000,0x000000016f0bc000] with protection modes 0 +Event: 0.013 Thread 0x00000001360b0600 Thread added: 0x00000001360b0600 +Event: 0.013 Protecting memory [0x000000016f2bc000,0x000000016f2c8000] with protection modes 0 +Event: 0.013 Thread 0x00000001360ac800 Thread added: 0x00000001360ac800 +Event: 0.013 Protecting memory [0x000000016f4c8000,0x000000016f4d4000] with protection modes 0 +Event: 0.013 Thread 0x0000000135821c00 Thread added: 0x0000000135821c00 +Event: 0.013 Protecting memory [0x000000016f6d4000,0x000000016f6e0000] with protection modes 0 +Event: 0.013 Thread 0x0000000135822200 Thread added: 0x0000000135822200 +Event: 0.013 Protecting memory [0x000000016f8e0000,0x000000016f8ec000] with protection modes 0 +Event: 0.015 Thread 0x0000000135822800 Thread added: 0x0000000135822800 +Event: 0.015 Protecting memory [0x000000016faec000,0x000000016faf8000] with protection modes 0 +Event: 0.015 Thread 0x0000000135827000 Thread added: 0x0000000135827000 +Event: 0.015 Protecting memory [0x000000016ff04000,0x000000016ff10000] with protection modes 0 + + +Dynamic libraries: +0x0000000102268000 /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libjli.dylib +0x000000019c372000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa +0x0000000187065000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x0000000189a67000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData +0x0000000184d99000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation +0x000000018f72a000 /usr/lib/libSystem.B.dylib +0x0000000187f74000 /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation +0x00000001f28cf000 /System/Library/PrivateFrameworks/CollectionViewCore.framework/Versions/A/CollectionViewCore +0x0000000196697000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices +0x000000018d9e2000 /System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap +0x0000000192138000 /System/Library/PrivateFrameworks/InternationalSupport.framework/Versions/A/InternationalSupport +0x00000001921bf000 /System/Library/PrivateFrameworks/UserActivity.framework/Versions/A/UserActivity +0x000000020a987000 /System/Library/PrivateFrameworks/WindowManagement.framework/Versions/A/WindowManagement +0x0000000184a66000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration +0x000000019161e000 /usr/lib/libspindump.dylib +0x000000018811a000 /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers +0x000000018b9ef000 /usr/lib/libapp_launch_measurement.dylib +0x000000018aea2000 /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics +0x000000018b9f6000 /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout +0x000000018d1e8000 /System/Library/Frameworks/Metal.framework/Versions/A/Metal +0x000000018e10f000 /usr/lib/liblangid.dylib +0x000000018d9e8000 /System/Library/PrivateFrameworks/CoreSVG.framework/Versions/A/CoreSVG +0x0000000188a85000 /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight +0x0000000188eb1000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics +0x0000000196d73000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate +0x000000019108b000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices +0x000000018d1c6000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface +0x000000018aed0000 /usr/lib/libDiagnosticMessagesClient.dylib +0x000000018f670000 /usr/lib/libz.1.dylib +0x000000019a18c000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices +0x000000018d9ca000 /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation +0x00000001868e2000 /usr/lib/libicucore.A.dylib +0x00000001930d0000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox +0x0000000192143000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore +0x00000001a9943000 /System/Library/PrivateFrameworks/TextInput.framework/Versions/A/TextInput +0x00000001889e8000 /usr/lib/libMobileGestalt.dylib +0x000000018d696000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x000000018b35e000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore +0x0000000186530000 /System/Library/Frameworks/Security.framework/Versions/A/Security +0x00000001966d7000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition +0x000000018b72e000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI +0x0000000185e9c000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio +0x000000018afac000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration +0x0000000191a5f000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport +0x00000001889e6000 /usr/lib/libenergytrace.dylib +0x0000000186f25000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit +0x0000000196ac2000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices +0x000000018b97c000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis +0x00000001e88f4000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL +0x000000018ba40000 /usr/lib/libxml2.2.dylib +0x000000018ebc7000 /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag +0x00000001839fc000 /usr/lib/libobjc.A.dylib +0x0000000183cb6000 /usr/lib/libc++.1.dylib +0x00000001894f8000 /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync +0x0000000183dff000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x000000018dd24000 /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage +0x0000000185cb9000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText +0x000000018da20000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO +0x000000018f730000 /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking +0x000000018f9c6000 /usr/lib/libcompression.dylib +0x0000000192093000 /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO +0x0000000190d58000 /usr/lib/libate.dylib +0x000000018f724000 /usr/lib/system/libcache.dylib +0x000000018f6e0000 /usr/lib/system/libcommonCrypto.dylib +0x000000018f70b000 /usr/lib/system/libcompiler_rt.dylib +0x000000018f701000 /usr/lib/system/libcopyfile.dylib +0x0000000183b35000 /usr/lib/system/libcorecrypto.dylib +0x0000000183bec000 /usr/lib/system/libdispatch.dylib +0x0000000183da6000 /usr/lib/system/libdyld.dylib +0x000000018f71a000 /usr/lib/system/libkeymgr.dylib +0x000000018f6ba000 /usr/lib/system/libmacho.dylib +0x000000018ecbf000 /usr/lib/system/libquarantine.dylib +0x000000018f717000 /usr/lib/system/libremovefile.dylib +0x0000000188a4f000 /usr/lib/system/libsystem_asl.dylib +0x0000000183ad1000 /usr/lib/system/libsystem_blocks.dylib +0x0000000183c37000 /usr/lib/system/libsystem_c.dylib +0x000000018f70f000 /usr/lib/system/libsystem_collections.dylib +0x000000018e0fe000 /usr/lib/system/libsystem_configuration.dylib +0x000000018d194000 /usr/lib/system/libsystem_containermanager.dylib +0x000000018f3ae000 /usr/lib/system/libsystem_coreservices.dylib +0x0000000186b96000 /usr/lib/system/libsystem_darwin.dylib +0x000000018f71b000 /usr/lib/system/libsystem_dnssd.dylib +0x0000000183c34000 /usr/lib/system/libsystem_featureflags.dylib +0x0000000183dd2000 /usr/lib/system/libsystem_info.dylib +0x000000018f682000 /usr/lib/system/libsystem_m.dylib +0x0000000183bc0000 /usr/lib/system/libsystem_malloc.dylib +0x00000001889cd000 /usr/lib/system/libsystem_networkextension.dylib +0x0000000187000000 /usr/lib/system/libsystem_notify.dylib +0x000000018e103000 /usr/lib/system/libsystem_sandbox.dylib +0x000000018f714000 /usr/lib/system/libsystem_secinit.dylib +0x0000000183d5f000 /usr/lib/system/libsystem_kernel.dylib +0x0000000183dcb000 /usr/lib/system/libsystem_platform.dylib +0x0000000183d99000 /usr/lib/system/libsystem_pthread.dylib +0x000000018a217000 /usr/lib/system/libsystem_symptoms.dylib +0x0000000183b1a000 /usr/lib/system/libsystem_trace.dylib +0x000000018f6ee000 /usr/lib/system/libunwind.dylib +0x0000000183ad6000 /usr/lib/system/libxpc.dylib +0x0000000183d43000 /usr/lib/libc++abi.dylib +0x000000018f6f9000 /usr/lib/liboah.dylib +0x0000000190c12000 /usr/lib/liblzma.5.dylib +0x000000018f72c000 /usr/lib/libfakelink.dylib +0x0000000188609000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork +0x000000018f86a000 /usr/lib/libarchive.2.dylib +0x00000001949fc000 /System/Library/Frameworks/Combine.framework/Versions/A/Combine +0x0000000192aaf000 /usr/lib/swift/libswiftCore.dylib +0x00000001a69d0000 /usr/lib/swift/libswiftCoreFoundation.dylib +0x00000001a4943000 /usr/lib/swift/libswiftDarwin.dylib +0x000000019800d000 /usr/lib/swift/libswiftDispatch.dylib +0x00000001a69f1000 /usr/lib/swift/libswiftIOKit.dylib +0x000000019a5c2000 /usr/lib/swift/libswiftObjectiveC.dylib +0x00000001a69e4000 /usr/lib/swift/libswiftXPC.dylib +0x0000000211402000 /usr/lib/swift/libswift_Concurrency.dylib +0x0000000211550000 /usr/lib/swift/libswift_StringProcessing.dylib +0x000000019a5c6000 /usr/lib/swift/libswiftos.dylib +0x0000000186ea9000 /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal +0x000000018ece6000 /usr/lib/libbsm.0.dylib +0x000000018f6c0000 /usr/lib/system/libkxld.dylib +0x000000018b9b8000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents +0x0000000186ba1000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore +0x000000018af14000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata +0x000000018f3b4000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices +0x000000018f8f2000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit +0x000000018a199000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE +0x00000001842d9000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices +0x0000000190bbb000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices +0x000000018b9c5000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList +0x000000018f990000 /usr/lib/libapple_nghttp2.dylib +0x0000000188605000 /usr/lib/libnetwork.dylib +0x0000000189e48000 /usr/lib/libsqlite3.dylib +0x000000018a220000 /System/Library/Frameworks/Network.framework/Versions/A/Network +0x00000002104ef000 /usr/lib/libCoreEntitlements.dylib +0x00000001fc4a6000 /System/Library/PrivateFrameworks/MessageSecurity.framework/Versions/A/MessageSecurity +0x0000000189e2e000 /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer +0x000000018f2dc000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression +0x000000018ecce000 /usr/lib/libcoretls.dylib +0x0000000190c2b000 /usr/lib/libcoretls_cfhelpers.dylib +0x000000018f9c0000 /usr/lib/libpam.2.dylib +0x0000000190c96000 /usr/lib/libxar.1.dylib +0x0000000191065000 /usr/lib/libheimdal-asn1.dylib +0x000000018f731000 /usr/lib/libpcap.A.dylib +0x000000018a20d000 /usr/lib/libdns_services.dylib +0x000000018e10b000 /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo +0x000000018e9c2000 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer +0x000000018f3a1000 /usr/lib/libbz2.1.0.dylib +0x000000018ecc2000 /usr/lib/libCheckFix.dylib +0x0000000188a67000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC +0x000000018e111000 /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP +0x000000018aed2000 /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities +0x000000018ecf8000 /usr/lib/libmecab.dylib +0x0000000184af0000 /usr/lib/libCRFSuite.dylib +0x000000018ed54000 /usr/lib/libgermantok.dylib +0x000000018f969000 /usr/lib/libThaiTokenizer.dylib +0x000000018afb5000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage +0x0000000196a99000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib +0x0000000190cdc000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib +0x000000018e8c1000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib +0x0000000184691000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib +0x000000018fa9b000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib +0x000000018ed57000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib +0x000000018f9ab000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib +0x000000018fa96000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib +0x000000018e206000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib +0x00000001849fe000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib +0x00000001fb6d4000 /System/Library/PrivateFrameworks/MIL.framework/Versions/A/MIL +0x000000018f766000 /usr/lib/libiconv.2.dylib +0x000000018f6b9000 /usr/lib/libcharset.1.dylib +0x000000018b998000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory +0x000000018b988000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory +0x0000000190c2d000 /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS +0x000000018ebfd000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation +0x0000000190ca5000 /usr/lib/libutil.dylib +0x00000001fa52e000 /System/Library/PrivateFrameworks/InstalledContentLibrary.framework/Versions/A/InstalledContentLibrary +0x0000000186ee8000 /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore +0x00000001f1276000 /System/Library/PrivateFrameworks/AppleMobileFileIntegrity.framework/Versions/A/AppleMobileFileIntegrity +0x00000001a69b0000 /usr/lib/libmis.dylib +0x00000001b4b79000 /System/Library/PrivateFrameworks/MobileSystemServices.framework/Versions/A/MobileSystemServices +0x00000001d00b2000 /System/Library/PrivateFrameworks/ConfigProfileHelper.framework/Versions/A/ConfigProfileHelper +0x000000018f96b000 /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce +0x000000018575f000 /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling +0x0000000190ca9000 /usr/lib/libxslt.1.dylib +0x000000018f858000 /usr/lib/libcmph.dylib +0x000000018e9af000 /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji +0x000000018e200000 /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData +0x00000001849b6000 /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon +0x000000018ec8f000 /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement +0x0000000210692000 /usr/lib/libTLE.dylib +0x00000002114a0000 /usr/lib/swift/libswift_RegexParser.dylib +0x0000000191924000 /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG +0x000000019104a000 /usr/lib/libexpat.1.dylib +0x0000000191ef6000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib +0x0000000191f21000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib +0x0000000192009000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib +0x000000019196a000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib +0x0000000191fae000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib +0x0000000191fa5000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib +0x000000018d523000 /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib +0x000000018a13a000 /System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices +0x000000019cb1d000 /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/Versions/A/IOSurfaceAccelerator +0x0000000191a5b000 /System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient +0x00000001858db000 /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay +0x000000018d3fa000 /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia +0x000000018d1de000 /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator +0x000000018bb29000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo +0x000000018f9be000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders +0x0000000191a9c000 /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox +0x000000018a077000 /System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard +0x0000000191fa0000 /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler +0x0000000191f80000 /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment +0x0000000191fa8000 /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay +0x00000001f6b6d000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/libllvm-flatbuffers.dylib +0x00000001e88e7000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib +0x00000001f6b69000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/libGPUCompilerUtils.dylib +0x000000019200f000 /System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore +0x00000001eb275000 /System/Library/Frameworks/ExtensionFoundation.framework/Versions/A/ExtensionFoundation +0x00000001987c8000 /System/Library/PrivateFrameworks/CoreTime.framework/Versions/A/CoreTime +0x0000000191609000 /System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport +0x00000001939b4000 /System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata +0x00000001859fb000 /System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore +0x000000018d3d1000 /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk +0x000000019326b000 /usr/lib/libAudioStatistics.dylib +0x00000001a5df2000 /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy +0x000000019350b000 /usr/lib/libSMC.dylib +0x000000019c23b000 /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI +0x0000000191ec3000 /usr/lib/libAudioToolboxUtility.dylib +0x00000001a1a72000 /System/Library/PrivateFrameworks/OSAServicesClient.framework/Versions/A/OSAServicesClient +0x00000001939c2000 /usr/lib/libperfcheck.dylib +0x0000000190f35000 /System/Library/PrivateFrameworks/PlugInKit.framework/Versions/A/PlugInKit +0x000000018ebef000 /System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices +0x00000001e8949000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib +0x00000001e8908000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib +0x00000001e8ae3000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib +0x00000001e8911000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib +0x00000001e8905000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib +0x0000000210671000 /usr/lib/libRosetta.dylib +0x00000001e88ee000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib +0x000000018e082000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore +0x000000018f252000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage +0x000000018ed6c000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork +0x000000018f154000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix +0x000000018ef66000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector +0x000000018f183000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray +0x00000001ec745000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSFunctions.framework/Versions/A/MPSFunctions +0x0000000184556000 /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools +0x000000018e109000 /System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary +0x0000000190ded000 /usr/lib/libIOReport.dylib +0x000000019b42b000 /System/Library/PrivateFrameworks/ASEProcessing.framework/Versions/A/ASEProcessing +0x00000001ff527000 /System/Library/PrivateFrameworks/PhotosensitivityProcessing.framework/Versions/A/PhotosensitivityProcessing +0x00000001911a7000 /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer +0x00000001f6a8a000 /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/FontServices +0x00000001915c7000 /System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG +0x000000018b6dc000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib +0x0000000191613000 /System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib +0x00000001f6a8b000 /System/Library/PrivateFrameworks/FontServices.framework/libXTFontStaticRegistryData.dylib +0x00000001b11f1000 /usr/lib/swift/libswiftMetal.dylib +0x00000001a98a9000 /usr/lib/swift/libswiftsimd.dylib +0x00000002094f0000 /System/Library/PrivateFrameworks/VideoToolboxParavirtualizationSupport.framework/Versions/A/VideoToolboxParavirtualizationSupport +0x0000000190ffe000 /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA +0x00000001932ab000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS +0x00000001895ea000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices +0x000000019201b000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore +0x0000000193664000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD +0x0000000193658000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy +0x000000019327f000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis +0x0000000191fd9000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI +0x00000001935eb000 /usr/lib/libcups.2.dylib +0x00000001939d0000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos +0x00000001939e1000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS +0x000000019331d000 /usr/lib/libresolv.9.dylib +0x0000000191623000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal +0x000000019a544000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib +0x0000000193a39000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth +0x00000001ea482000 /System/Library/Frameworks/AVFAudio.framework/Versions/A/AVFAudio +0x00000001a1ac1000 /System/Library/PrivateFrameworks/AXCoreUtilities.framework/Versions/A/AXCoreUtilities +0x00000001931f7000 /System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession +0x00000001947ae000 /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth +0x0000000191100000 /System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience +0x0000000193096000 /System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib +0x0000000193670000 /System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration +0x00000001976d4000 /System/Library/PrivateFrameworks/PowerLog.framework/Versions/A/PowerLog +0x0000000197614000 /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth +0x000000019a545000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit +0x000000018ea4e000 /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils +0x00000001f5361000 /System/Library/PrivateFrameworks/CoreUtilsExtras.framework/Versions/A/CoreUtilsExtras +0x00000001fa3c4000 /System/Library/PrivateFrameworks/IO80211.framework/Versions/A/IO80211 +0x0000000191070000 /System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/IconFoundation +0x00000001966c3000 /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore +0x0000000108770000 /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/server/libjvm.dylib +0x0000000102314000 /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libjimage.dylib +0x000000010235c000 /Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib/libjava.dylib +0x0000000102690000 /Users/sm/jnat/integration/java/out/libhello.dylib + + +VM Arguments: +jvm_args: -Djava.library.path=out +java_command: Hello +java_class_path (initial): out +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 9 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 536870912 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 8589934592 {product} {ergonomic} + size_t MaxNewSize = 5150605312 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5839564 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122909338 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122909338 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8589934592 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseNUMA = false {product} {ergonomic} + bool UseNUMAInterleaving = false {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=/Users/sm/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home +CLASSPATH=.:/Users/sm/bin/antlr-4.13.0-complete.jar: +PATH=/Users/sm/Library/pnpm:/Users/sm/.nvm/versions/node/v20.2.0/bin:/usr/local/opt/libpq/bin:/Users/sm/bin:/Users/sm/opt/anaconda3/bin:/Users/sm/opt/anaconda3/condabin:/Users/sm/.bun/bin:/Users/sm/.asdf/shims:/Users/sm/.asdf/bin:/Users/sm/Library/Android/sdk/platform-tools:/Library/PostgreSQL/15/bin:/opt/homebrew/bin:/usr/local/opt/llvm/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Applications/Postgres.app/Contents/Versions/latest/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/sm/.cargo/bin:/usr/local/bin:/Users/sm/flutter/bin:/Users/sm/.pub-cache/bin:/usr/local/texlive/2022/bin:/Users/sm/n/bin +SHELL=/bin/zsh +DISPLAY=/private/tmp/com.apple.launchd.BecayP9wEt/org.xquartz:0 +LANG=en_US.UTF-8 +TERM=xterm-256color +TMPDIR=/var/folders/wh/89snxy2x1f926lsq_pm_w6340000gn/T/ + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.dylib, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO, unblocked + + +--------------- S Y S T E M --------------- + +OS: +uname: Darwin 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun 8 22:22:23 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T6020 arm64 +OS uptime: 7 days 4:12 hours +rlimit (soft/hard): STACK 8176k/65520k , CORE 0k/infinity , NPROC 5333/8000 , NOFILE 10240/infinity , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK infinity/infinity , RSS infinity/infinity +load average: 2.40 2.45 2.50 + +CPU: total 10 (initial active 10) 0x61:0x0:0xda33d83d:0, fp, asimd, aes, pmull, crc32, lse + +Memory: 16k page, physical 33554432k(599456k free), swap 0k(0k free) + +vm_info: OpenJDK 64-Bit Server VM (20.0.1+9-29) for bsd-aarch64 JRE (20.0.1+9-29), built on 2023-03-07T13:56:11Z by "mach5one" with clang Apple LLVM 12.0.0 (clang-1200.0.32.29) + +END. diff --git a/integration/tests/lib/call_method.rs b/integration/tests/lib/call_method.rs index 4edb2f5..6d834a0 100644 --- a/integration/tests/lib/call_method.rs +++ b/integration/tests/lib/call_method.rs @@ -2,16 +2,17 @@ extern crate jnat; use jnat::{ env::Env, + jnat_macros::jnat, jni::{ objects::{JClass, JObject}, JNIEnv, }, signature::{Signature, Type}, - value::{Value, Object}, + value::{Object, Value}, }; -#[no_mangle] -pub extern "system" fn Java_CallMethod_caller(env: JNIEnv, _: JClass, instance: JObject) { +#[jnat(CallMethod)] +fn caller(env: JNIEnv, _: JClass, instance: JObject) { let mut env = env; let mut env = Env::new(&mut env); diff --git a/integration/tests/lib/call_static_method.rs b/integration/tests/lib/call_static_method.rs index 52ade7b..db09205 100644 --- a/integration/tests/lib/call_static_method.rs +++ b/integration/tests/lib/call_static_method.rs @@ -2,20 +2,18 @@ extern crate jnat; use jnat::{ env::Env, - jni::{ - objects::JClass, - JNIEnv, - }, + jnat_macros::jnat, + jni::{objects::JClass, JNIEnv}, signature::{Signature, Type}, - value::{Value, Object}, + value::{Object, Value}, }; -#[no_mangle] -pub extern "system" fn Java_CallStaticMethod_caller(env: JNIEnv, _: JClass) { +#[jnat(CallStaticMethod)] +fn caller(env: JNIEnv, _: JClass) { let mut env = env; let mut env = Env::new(&mut env); - // Alternatively (remember to rename the second parameter of Java_CallStaticMethod_caller to `class`): + // Alternatively (remember to rename the second parameter of caller to `class`): // let mut class = Class::new(&env, class); let mut class = env.class("CallStaticMethod").expect("Failed to find class"); diff --git a/integration/tests/lib/hello.rs b/integration/tests/lib/hello.rs index 5816385..c0c7fe7 100644 --- a/integration/tests/lib/hello.rs +++ b/integration/tests/lib/hello.rs @@ -2,6 +2,7 @@ extern crate jnat; use jnat::{ env::Env, + jnat_macros::jnat, jni::{ objects::{JClass, JString}, sys::jstring, @@ -9,8 +10,8 @@ use jnat::{ }, }; -#[no_mangle] -pub extern "system" fn Java_Hello_hello(mut env: JNIEnv, _: JClass, name: JString) -> jstring { +#[jnat(Hello)] +fn hello(mut env: JNIEnv, _: JClass, name: JString) -> jstring { let mut env = Env::new(&env); let message: String = env.get_string(&name).expect("Failed to get name").into(); diff --git a/jnat-macros/.gitignore b/jnat-macros/.gitignore new file mode 100644 index 0000000..4fffb2f --- /dev/null +++ b/jnat-macros/.gitignore @@ -0,0 +1,2 @@ +/target +/Cargo.lock diff --git a/jnat-macros/Cargo.toml b/jnat-macros/Cargo.toml new file mode 100644 index 0000000..a19261d --- /dev/null +++ b/jnat-macros/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "jnat-macros" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +proc-macro2 = "1.0.66" +quote = "1.0.32" +syn = { version = "2.0.27", features = ["full"] } + +[lib] +proc-macro = true diff --git a/jnat-macros/src/lib.rs b/jnat-macros/src/lib.rs new file mode 100644 index 0000000..613698d --- /dev/null +++ b/jnat-macros/src/lib.rs @@ -0,0 +1,48 @@ +use proc_macro::TokenStream; +use quote::ToTokens; +use syn::{parse::Parser, parse_macro_input, punctuated::Punctuated, Ident, ItemFn, Path, Token}; + +#[proc_macro_attribute] +pub fn jnat(args: TokenStream, item: TokenStream) -> TokenStream { + let args = Punctuated::::parse_terminated + .parse(args) + .unwrap(); + let item = parse_macro_input!(item as ItemFn); + + let method_name = args + .iter() + .map(|x| x.to_token_stream().to_string()) + .collect::>() + .join("_"); + let method_name = format!("Java_{}_{}", method_name, item.sig.ident.to_string()); + + let item = item.clone(); + let mut native_fn = item.clone(); + + native_fn.sig.ident = Ident::new(&method_name, native_fn.sig.ident.span()); + native_fn.sig.abi = Some(syn::parse_quote!(extern "system")); + + // Changing visibility and params is probably unexpected behavior, just leaving this here for reference + + /* item + .sig + .inputs + .insert(0, syn::parse_quote!(mut env: jnat::jni::JNIEnv)); + item + .sig + .inputs + .insert(1, syn::parse_quote!(class: jnat::jni::objects::JClass)); */ + + /* native_fn.vis = Visibility::Public(Pub { + span: Span::call_site(), + }); */ + + // We want #[no_mangle] and #[allow(non_snake_case)] + + let out = "#[no_mangle]\n#[allow(non_snake_case)]\n".to_string() + + &native_fn.to_token_stream().to_string() + + "\n" + + &item.to_token_stream().to_string(); + + out.parse().unwrap() +} diff --git a/src/lib.rs b/src/lib.rs index 7ea7367..a04ffff 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,3 +7,6 @@ mod test; #[cfg(feature = "jni")] pub use jni; + +#[cfg(feature = "jnat-macros")] +pub use jnat_macros;