Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Best way to enable java.lang.* classes tracing? #702

Closed
smagellan opened this issue Nov 1, 2024 · 10 comments
Closed

Best way to enable java.lang.* classes tracing? #702

smagellan opened this issue Nov 1, 2024 · 10 comments
Labels

Comments

@smagellan
Copy link

smagellan commented Nov 1, 2024

Hello.
I would like to trace java.lang.Thread.interrupt() callers. Unfortunately, btrace does not allow that at the moment (#685 (comment), https://github.com/btraceio/btrace/blob/develop/btrace-instr/src/main/java/org/openjdk/btrace/instr/ClassFilter.java#L93) due to the invokedynamic "trampolines". @jbachorik, did you have a chance to find the better way to overcome the issue?

@jbachorik
Copy link
Collaborator

I have been working on this pretty large patch to allow this - #690

It is not completely finished yet, although it does mostly work. You could try doing a custom build from that branch to see if you are able to use it to trace Thread.interrupt() - and if you encounter any issues, please, report them so I can stabilize the patch.

Thanks!

@smagellan
Copy link
Author

@jbachorik, will do.

@jbachorik
Copy link
Collaborator

Hi @smagellan - were you able to do what you wanted? I am preparing to merge the PR and it would be helpful to know whether it solved your problem or not.

@smagellan
Copy link
Author

smagellan commented Nov 10, 2024

@jbachorik, no luck at the moment:
~/opt/btrace-jb-improved_linking-pr690/bin/btrace --version:

BTrace v.2.3.0-SNAPSHOT (f82f8cbb4f56074f547ffcaea6830f1d497c4165)

~/opt/btrace-jb-improved_linking-pr690/bin/btrace -v 351496 ThreadStart.class:

OpenJDK 64-Bit Server VM warning: Option AllowRedefinitionToAddDeleteMethods was deprecated in version 13.0 and will likely be removed in a future release.
[main] DEBUG org.openjdk.btrace.client.Main - assuming default port 2020
[main] DEBUG org.openjdk.btrace.client.Main - assuming default classpath '.'
[main] INFO org.openjdk.btrace.client.Main - Attaching BTrace to PID: 351496
[main] DEBUG org.openjdk.btrace.client.Client - reading ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Client - read ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Main - Boot classpath: .
[main] DEBUG org.openjdk.btrace.client.Client - attaching to 351496
[main] DEBUG org.openjdk.btrace.client.Client - checking port availability: 2020
[main] DEBUG org.openjdk.btrace.client.Client - attached to 351496
[main] DEBUG org.openjdk.btrace.client.Client - loading /home/vladimir/opt/btrace-jb-improved_linking-pr690/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Client - agent args: port=2020,statsd=,debug=true,bootClassPath=.,systemClassPath=/usr/lib/jvm/java-21-openjdk-amd64/lib/tools.jar,probeDescPath=.
[main] DEBUG org.openjdk.btrace.client.Client - loaded /home/vladimir/opt/btrace-jb-improved_linking-pr690/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Main - registering shutdown hook
[main] DEBUG org.openjdk.btrace.client.Main - registering signal handler for SIGINT
[main] DEBUG org.openjdk.btrace.client.Main - submitting the BTrace program
[main] DEBUG org.openjdk.btrace.client.Client - opening socket to 2020
[main] DEBUG org.openjdk.btrace.client.Client - setting up client settings
[main] DEBUG org.openjdk.btrace.client.Client - sending instrument command: []
[main] DEBUG org.openjdk.btrace.client.Client - entering into command loop
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RenameCommand@2a18f23c
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@16c0663d
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@23223dd8
[main] INFO org.openjdk.btrace.client.Client - Successfully started BTrace probe: ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@4ec6a292

And the java program being instrumented is located here: https://github.com/smagellan/misc-experiments/blob/master/unsorted/src/main/java/smagellan/test/btrace/ThreadSpawner.java

ThreadSpawner.java
public class ThreadSpawner {
    public static void main(String[] args) throws InterruptedException {
        System.err.println("pid: " + ProcessHandle.current().pid());
        for (int i = 0; i < 1000; ++i) {
            spawnThread();
            Thread.sleep(5 * 1000);
        }
    }

    private static void spawnThread() throws InterruptedException {
        Thread t = new Thread( () -> System.err.println("thread started"));
        t.setName("testThread");
        t.start();
        t.join();
    }
}

The probe comes from the btrace itself (https://github.com/btraceio/btrace/blob/master/btrace-dist/src/main/resources/samples/ThreadStart.java), however D.probe line was commented:

//D.probe("jthreadstart", Threads.name(t));

@jbachorik
Copy link
Collaborator

Hm, this is intriguing. I have used your reproducer and added it as a functional test in this commit.

I can see the trace kicking in and correctly printing the expected message, both when running BTrace on JVM startup and when attaching to the target process. I tried Java 8, 17 and 21 and they all do work.

What Java version are you using?

@jbachorik
Copy link
Collaborator

Also, running from command line:

~/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT git:[jb/improved_linking]
./bin/btrace -v ThreadSpawner ../../../../../integration-tests/src/test/btrace/ThreadStart.java
OpenJDK 64-Bit Server VM warning: Option AllowRedefinitionToAddDeleteMethods was deprecated in version 13.0 and will likely be removed in a future release.
[main] DEBUG org.openjdk.btrace.client.Main - assuming default port 2020
[main] DEBUG org.openjdk.btrace.client.Main - assuming default classpath '.'
[main] INFO org.openjdk.btrace.client.Main - Attaching BTrace to PID: 26308
[main] DEBUG org.openjdk.btrace.client.Client - compiling ../../../../../integration-tests/src/test/btrace/ThreadStart.java
[main] DEBUG org.openjdk.btrace.client.Client - compiled ../../../../../integration-tests/src/test/btrace/ThreadStart.java
[main] DEBUG org.openjdk.btrace.client.Main - Boot classpath: .
[main] DEBUG org.openjdk.btrace.client.Client - attaching to 26308
[main] DEBUG org.openjdk.btrace.client.Client - checking port availability: 2020
[main] DEBUG org.openjdk.btrace.client.Client - attached to 26308
[main] DEBUG org.openjdk.btrace.client.Client - loading /Users/jbachorik/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Client - agent args: port=2020,statsd=,debug=true,bootClassPath=.,systemClassPath=/Users/jbachorik/.sdkman/candidates/java/17.0.13-tem/lib/tools.jar,probeDescPath=.
[main] DEBUG org.openjdk.btrace.client.Client - loaded /Users/jbachorik/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Main - registering shutdown hook
[main] DEBUG org.openjdk.btrace.client.Main - registering signal handler for SIGINT
[main] DEBUG org.openjdk.btrace.client.Main - submitting the BTrace program
[main] DEBUG org.openjdk.btrace.client.Client - opening socket to 2020
[main] DEBUG org.openjdk.btrace.client.Client - setting up client settings
[main] DEBUG org.openjdk.btrace.client.Client - sending instrument command: []
[main] DEBUG org.openjdk.btrace.client.Client - entering into command loop
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RenameCommand@7ce69770
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@5b247367
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RetransformationStartNotification@6e9a5ed8
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@7e057f43
[main] INFO org.openjdk.btrace.client.Client - Successfully started BTrace probe: ../../../../../integration-tests/src/test/btrace/ThreadStart.java
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@6c284af
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@7d9d0818
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@221a3fa4
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@451001e5
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@2b40ff9c
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@3e08ff24
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4d1c005e
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@8462f31
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@24569dba
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@5ddeb7cb
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@70ed52de
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@496bc455
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@59402b8f
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@7188af83
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@6be968ce
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@7c37508a
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@247310d0
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@1033576a
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@303cf2ba
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@76494737
starting testThread

^CPlease enter your option:
        1. exit
        2. send an event
        3. send a named event
        4. flush console output
        5. list probes
        6. detach client
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4a003cbe
1
starting testThread

[Thread-0] DEBUG org.openjdk.btrace.client.Main - sending exit command

@jbachorik
Copy link
Collaborator

Using the compiled version of the trace -

~/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT git:[jb/improved_linking]
./bin/btrace -v ThreadSpawner ../../../../../integration-tests/build/classes/traces/ThreadStart.class
OpenJDK 64-Bit Server VM warning: Option AllowRedefinitionToAddDeleteMethods was deprecated in version 13.0 and will likely be removed in a future release.
[main] DEBUG org.openjdk.btrace.client.Main - assuming default port 2020
[main] DEBUG org.openjdk.btrace.client.Main - assuming default classpath '.'
[main] INFO org.openjdk.btrace.client.Main - Attaching BTrace to PID: 26534
[main] DEBUG org.openjdk.btrace.client.Client - reading ../../../../../integration-tests/build/classes/traces/ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Client - read ../../../../../integration-tests/build/classes/traces/ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Main - Boot classpath: .
[main] DEBUG org.openjdk.btrace.client.Client - attaching to 26534
[main] DEBUG org.openjdk.btrace.client.Client - checking port availability: 2020
[main] DEBUG org.openjdk.btrace.client.Client - attached to 26534
[main] DEBUG org.openjdk.btrace.client.Client - loading /Users/jbachorik/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Client - agent args: port=2020,statsd=,debug=true,bootClassPath=.,systemClassPath=/Users/jbachorik/.sdkman/candidates/java/17.0.13-tem/lib/tools.jar,probeDescPath=.
[main] DEBUG org.openjdk.btrace.client.Client - loaded /Users/jbachorik/src/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Main - registering shutdown hook
[main] DEBUG org.openjdk.btrace.client.Main - registering signal handler for SIGINT
[main] DEBUG org.openjdk.btrace.client.Main - submitting the BTrace program
[main] DEBUG org.openjdk.btrace.client.Client - opening socket to 2020
[main] DEBUG org.openjdk.btrace.client.Client - setting up client settings
[main] DEBUG org.openjdk.btrace.client.Client - sending instrument command: []
[main] DEBUG org.openjdk.btrace.client.Client - entering into command loop
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@b3d7190
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RetransformationStartNotification@10d59286
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@fe18270
[main] INFO org.openjdk.btrace.client.Client - Successfully started BTrace probe: ../../../../../integration-tests/build/classes/traces/ThreadStart.class
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@6fb0d3ed
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@281e3708
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@35a50a4c
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@1f021e6c
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@103f852
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@587c290d
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4516af24
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4ae82894
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@543788f3
starting testThread

^CPlease enter your option:
        1. exit
        2. send an event
        3. send a named event
        4. flush console output
        5. list probes
        6. detach client
1[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@6d3af739

starting testThread

[Thread-0] DEBUG org.openjdk.btrace.client.Main - sending exit command

@smagellan
Copy link
Author

@jbachorik, I use an openjdk-21 from debian testing(https://packages.debian.org/testing/openjdk-21-jdk):

/usr/lib/jvm/java-1.21.0-openjdk-amd64/bin/java -version
openjdk version "21.0.5" 2024-10-15
OpenJDK Runtime Environment (build 21.0.5+11-Debian-1)
OpenJDK 64-Bit Server VM (build 21.0.5+11-Debian-1, mixed mode, sharing)

I am pretty sure something is misconfigured at my side, need to investigate further

@smagellan
Copy link
Author

smagellan commented Nov 10, 2024

I have found the cause. btrace works as expected if I run the inspected program in a 'vanilla' way (i.e. start from a command line):

Thread.{start,interrupt}(system) and spawnThread(userland) were intercepted
/home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/bin/btrace -v 430406 ThreadStartProbe.java
OpenJDK 64-Bit Server VM warning: Option AllowRedefinitionToAddDeleteMethods was deprecated in version 13.0 and will likely be removed in a future release.
[main] DEBUG org.openjdk.btrace.client.Main - assuming default port 2020
[main] DEBUG org.openjdk.btrace.client.Main - assuming default classpath '.'
[main] INFO org.openjdk.btrace.client.Main - Attaching BTrace to PID: 430406
[main] DEBUG org.openjdk.btrace.client.Client - compiling ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Client - compiled ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Main - Boot classpath: .
[main] DEBUG org.openjdk.btrace.client.Client - attaching to 430406
[main] DEBUG org.openjdk.btrace.client.Client - checking port availability: 2020
[main] DEBUG org.openjdk.btrace.client.Client - attached to 430406
[main] DEBUG org.openjdk.btrace.client.Client - loading /home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Client - agent args: port=2020,statsd=,debug=true,bootClassPath=.,systemClassPath=/usr/lib/jvm/java-22-openjdk-amd64/lib/tools.jar,probeDescPath=.
[main] DEBUG org.openjdk.btrace.client.Client - loaded /home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Main - registering shutdown hook
[main] DEBUG org.openjdk.btrace.client.Main - registering signal handler for SIGINT
[main] DEBUG org.openjdk.btrace.client.Main - submitting the BTrace program
[main] DEBUG org.openjdk.btrace.client.Client - opening socket to 2020
[main] DEBUG org.openjdk.btrace.client.Client - setting up client settings
[main] DEBUG org.openjdk.btrace.client.Client - sending instrument command: []
[main] DEBUG org.openjdk.btrace.client.Client - entering into command loop
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RenameCommand@4b2bac3f
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@bcec361
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RetransformationStartNotification@302552ec
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@3d285d7e
[main] INFO org.openjdk.btrace.client.Client - Successfully started BTrace probe: ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@40005471
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@fbd1f6
onMethod; probeMethod: spawnThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@1ce24091
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@5dda768f
interrupted: testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@7a8c8dcf
onMethod; probeMethod: spawnThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@24269709
starting testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@2aceadd4
interrupted: testThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@24aed80c
onMethod; probeMethod: spawnThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@3a52dba3
starting testThread

And it mostly works if the ThreadSpawner is launched via IDE (Intellij IDEA in my case).

spawnThread(userland) was intercepted. Thread.{start,interrupt}(system) were not intercepted
/home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/bin/btrace -v 430211 ThreadStartProbe.java
OpenJDK 64-Bit Server VM warning: Option AllowRedefinitionToAddDeleteMethods was deprecated in version 13.0 and will likely be removed in a future release.
[main] DEBUG org.openjdk.btrace.client.Main - assuming default port 2020
[main] DEBUG org.openjdk.btrace.client.Main - assuming default classpath '.'
[main] INFO org.openjdk.btrace.client.Main - Attaching BTrace to PID: 430211
[main] DEBUG org.openjdk.btrace.client.Client - compiling ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Client - compiled ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Main - Boot classpath: .
[main] DEBUG org.openjdk.btrace.client.Client - attaching to 430211
[main] DEBUG org.openjdk.btrace.client.Client - checking port availability: 2020
[main] DEBUG org.openjdk.btrace.client.Client - attached to 430211
[main] DEBUG org.openjdk.btrace.client.Client - loading /home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Client - agent args: port=2020,statsd=,debug=true,bootClassPath=.,systemClassPath=/usr/lib/jvm/java-21-openjdk-amd64/lib/tools.jar,probeDescPath=.
[main] DEBUG org.openjdk.btrace.client.Client - loaded /home/vladimir/projects/btrace/btrace-dist/build/resources/main/v2.3.0-SNAPSHOT/libs/btrace-agent.jar
[main] DEBUG org.openjdk.btrace.client.Main - registering shutdown hook
[main] DEBUG org.openjdk.btrace.client.Main - registering signal handler for SIGINT
[main] DEBUG org.openjdk.btrace.client.Main - submitting the BTrace program
[main] DEBUG org.openjdk.btrace.client.Client - opening socket to 2020
[main] DEBUG org.openjdk.btrace.client.Client - setting up client settings
[main] DEBUG org.openjdk.btrace.client.Client - sending instrument command: []
[main] DEBUG org.openjdk.btrace.client.Client - entering into command loop
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RenameCommand@4116aac9
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@74e52ef6
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.RetransformationStartNotification@1a677343
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@15de0b3c
[main] INFO org.openjdk.btrace.client.Client - Successfully started BTrace probe: ThreadStartProbe.java
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.StatusCommand@489115ef
[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4d1c00d0
onMethod; probeMethod: spawnThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4b2bac3f
onMethod; probeMethod: spawnThread

[main] DEBUG org.openjdk.btrace.client.Client - received command org.openjdk.btrace.core.comm.MessageCommand@4e08711f
onMethod; probeMethod: spawnThread

I have checked the command line, the IDE uses a custom javaagent; that might be the source of the interference:

-XX:+EnableDynamicAgentLoading -javaagent:/opt/idea-IC-241.14494.240/lib/idea_rt.jar=36367:/opt/idea-IC-241.14494.240/bin

N.B.: I have used https://github.com/smagellan/misc-experiments/blob/master/unsorted/src/main/java/smagellan/test/btrace/ThreadSpawner.java + https://github.com/smagellan/misc-experiments/blob/master/unsorted/src/main/java/smagellan/test/btrace/ThreadStartProbe.java this time

@jbachorik
Copy link
Collaborator

Thanks for confirming!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants