├── .github ├── FUNDING.yml └── workflows │ ├── codeql-analysis.yml │ ├── continuous.yml │ ├── release.yml │ └── stale.yml ├── .gitignore ├── README.md ├── benchmarks ├── agent-benchmark │ ├── build.gradle │ └── src │ │ └── jmh │ │ ├── btrace │ │ └── TraceScript.java │ │ └── java │ │ └── benchmark │ │ └── BTraceBench.java └── runtime-benchmarks │ ├── build.gradle │ └── src │ └── jmh │ ├── btrace │ └── TraceScript.java │ └── java │ └── org │ └── openjdk │ └── btrace │ └── bench │ ├── ClassFilterBenchmark.java │ ├── OnMethodTemplateBenchmark.java │ ├── ProbeLoadingBenchmark.java │ ├── ProfilerBenchmark.java │ ├── StatsdBenchmark.java │ └── StringOpBenchmark.java ├── btrace-agent ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── openjdk │ │ │ └── btrace │ │ │ └── agent │ │ │ ├── Client.java │ │ │ ├── ClientContext.java │ │ │ ├── FileClient.java │ │ │ ├── Main.java │ │ │ ├── PerfReaderImpl.java │ │ │ ├── RemoteClient.java │ │ │ └── TraceOutputWriter.java │ └── resources │ │ └── META-INF │ │ └── MANIFEST.MF │ └── test │ └── java │ └── org │ └── openjdk │ └── btrace │ └── agent │ └── MainTest.java ├── btrace-client ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── openjdk │ └── btrace │ └── client │ ├── Client.java │ ├── JpsUtils.java │ ├── Main.java │ └── ProbePrinter.java ├── btrace-compiler ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── compiler │ │ ├── AnnotationSerializer.java │ │ ├── Compiler.java │ │ ├── CompilerClassWriter.java │ │ ├── CompilerHelper.java │ │ ├── ConcatenatingReader.java │ │ ├── MemoryJavaFileManager.java │ │ ├── PCPP.java │ │ ├── PackGenerator.java │ │ ├── Postprocessor.java │ │ ├── Printer.java │ │ ├── Verifier.java │ │ └── VerifierVisitor.java │ └── test │ ├── java │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── compiler │ │ ├── JfrEventsTest.java │ │ └── TypeErasureTest.java │ └── resources │ ├── HistoProbe.java │ └── JfrEventsProbe.java ├── btrace-core ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── openjdk │ │ │ └── btrace │ │ │ └── core │ │ │ ├── Args.java │ │ │ ├── ArgsMap.java │ │ │ ├── BTraceRuntime.java │ │ │ ├── BTraceUtils.java │ │ │ ├── CircularBuffer.java │ │ │ ├── DebugSupport.java │ │ │ ├── Function.java │ │ │ ├── HandlerRepository.java │ │ │ ├── Messages.java │ │ │ ├── MethodID.java │ │ │ ├── PrefixMap.java │ │ │ ├── Profiler.java │ │ │ ├── SharedSettings.java │ │ │ ├── VerifierException.java │ │ │ ├── aggregation │ │ │ ├── Aggregation.java │ │ │ ├── AggregationFunction.java │ │ │ ├── AggregationKey.java │ │ │ ├── AggregationValue.java │ │ │ ├── Average.java │ │ │ ├── Count.java │ │ │ ├── HistogramData.java │ │ │ ├── Maximum.java │ │ │ ├── Minimum.java │ │ │ ├── Quantize.java │ │ │ └── Sum.java │ │ │ ├── annotations │ │ │ ├── BTrace.java │ │ │ ├── DTrace.java │ │ │ ├── DTraceRef.java │ │ │ ├── Duration.java │ │ │ ├── Event.java │ │ │ ├── Export.java │ │ │ ├── Injected.java │ │ │ ├── Kind.java │ │ │ ├── Level.java │ │ │ ├── Location.java │ │ │ ├── OnError.java │ │ │ ├── OnEvent.java │ │ │ ├── OnExit.java │ │ │ ├── OnLowMemory.java │ │ │ ├── OnMethod.java │ │ │ ├── OnProbe.java │ │ │ ├── OnTimer.java │ │ │ ├── PeriodicEvent.java │ │ │ ├── ProbeClassName.java │ │ │ ├── ProbeMethodName.java │ │ │ ├── Property.java │ │ │ ├── Return.java │ │ │ ├── Sampled.java │ │ │ ├── Self.java │ │ │ ├── ServiceType.java │ │ │ ├── TLS.java │ │ │ ├── TargetInstance.java │ │ │ ├── TargetMethodOrField.java │ │ │ └── Where.java │ │ │ ├── comm │ │ │ ├── Command.java │ │ │ ├── CommandListener.java │ │ │ ├── DataCommand.java │ │ │ ├── DisconnectCommand.java │ │ │ ├── ErrorCommand.java │ │ │ ├── EventCommand.java │ │ │ ├── ExitCommand.java │ │ │ ├── GridDataCommand.java │ │ │ ├── InstrumentCommand.java │ │ │ ├── ListProbesCommand.java │ │ │ ├── MessageCommand.java │ │ │ ├── NumberDataCommand.java │ │ │ ├── NumberMapDataCommand.java │ │ │ ├── PrintableCommand.java │ │ │ ├── ReconnectCommand.java │ │ │ ├── RenameCommand.java │ │ │ ├── RetransformClassNotification.java │ │ │ ├── RetransformationStartNotification.java │ │ │ ├── SetSettingsCommand.java │ │ │ ├── StatusCommand.java │ │ │ ├── StringMapDataCommand.java │ │ │ └── WireIO.java │ │ │ ├── handlers │ │ │ ├── ErrorHandler.java │ │ │ ├── EventHandler.java │ │ │ ├── ExitHandler.java │ │ │ ├── LowMemoryHandler.java │ │ │ └── TimerHandler.java │ │ │ ├── jfr │ │ │ └── JfrEvent.java │ │ │ └── types │ │ │ ├── AnyType.java │ │ │ ├── BTraceCollection.java │ │ │ ├── BTraceDeque.java │ │ │ └── BTraceMap.java │ └── resources │ │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── core │ │ ├── annotations │ │ └── jaxb.index │ │ └── messages.properties │ └── test │ └── java │ └── org │ └── openjdk │ └── btrace │ └── core │ ├── CircularBufferTest.java │ └── ReflectiveFieldAccessTest.java ├── btrace-dist ├── build.gradle └── src │ └── main │ └── resources │ ├── COPYRIGHT │ ├── LICENSE │ ├── LICENSE-3RD-PARTY.txt │ ├── THIRDPARTYLICENSEREADME.txt │ ├── bin │ ├── btrace │ ├── btrace.bat │ ├── btracec │ ├── btracec.bat │ ├── btracep │ ├── btracep.bat │ ├── btracer │ └── btracer.bat │ ├── libs │ └── amd64 │ │ └── libbtrace.so │ └── samples │ ├── AWTEventTracer.java │ ├── AllCalls1.java │ ├── AllCalls1Sampled.java │ ├── AllCalls2.java │ ├── AllCalls2Sampled.java │ ├── AllCalls3.java │ ├── AllCalls3Sampled.java │ ├── AllLines.java │ ├── AllMethods.java │ ├── AllMethods1.java │ ├── AllMethodsLevels.java │ ├── AllMethodsSampled.java │ ├── AllSync.java │ ├── ArgArray.java │ ├── Classload.java │ ├── CommandArg.java │ ├── DTraceInline.java │ ├── DTraceRefDemo.java │ ├── Deadlock.java │ ├── FileTracker.java │ ├── FileTrackerJfr.java │ ├── FinalizeTracker.java │ ├── HistoOnEvent.java │ ├── Histogram.java │ ├── HistogramBean.java │ ├── JInfo.java │ ├── JMap.java │ ├── JStack.java │ ├── JdbcQueries.java │ ├── LogTracer.java │ ├── MemAlerter.java │ ├── Memory.java │ ├── MultiClass.java │ ├── NewArray.java │ ├── NewComponent.java │ ├── OnThrow.java │ ├── ProbeArgs.java │ ├── ProbeExit.java │ ├── Profiling.java │ ├── Sizeof.java │ ├── SocketTracker.java │ ├── SocketTracker1.java │ ├── SubtypeTracer.java │ ├── SysProp.java │ ├── Test.java │ ├── ThreadBean.java │ ├── ThreadCounter.java │ ├── ThreadCounterBean.java │ ├── ThreadStart.java │ ├── Timers.java │ ├── URLTracker.java │ ├── WebServiceTracker.java │ ├── btracedefs.h │ ├── classload.d │ ├── java.net.socket.xml │ ├── jthread.d │ ├── jurls.d │ └── syscalls.d ├── btrace-dtrace ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── openjdk │ │ │ └── btrace │ │ │ └── dtrace │ │ │ ├── DTrace.java │ │ │ ├── DTraceCommand.java │ │ │ ├── DTraceConsumerCommand.java │ │ │ ├── DTraceDataCommand.java │ │ │ ├── DTraceDropCommand.java │ │ │ ├── DTraceErrorCommand.java │ │ │ ├── DTraceStartCommand.java │ │ │ └── DTraceStopCommand.java │ └── native │ │ ├── btrace.c │ │ └── btraced.d │ └── mock │ └── java │ └── org │ └── opensolaris │ └── os │ └── dtrace │ ├── Aggregate.java │ ├── Aggregation.java │ ├── AggregationRecord.java │ ├── AggregationValue.java │ ├── Consumer.java │ ├── ConsumerAdapter.java │ ├── ConsumerEvent.java │ ├── ConsumerException.java │ ├── ConsumerListener.java │ ├── DTraceException.java │ ├── DataEvent.java │ ├── Drop.java │ ├── DropEvent.java │ ├── ErrorEvent.java │ ├── ExceptionHandler.java │ ├── LocalConsumer.java │ ├── Option.java │ ├── Probe.java │ ├── ProbeData.java │ ├── ProbeDescription.java │ ├── Program.java │ ├── Record.java │ └── Tuple.java ├── btrace-instr ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── openjdk │ │ │ └── btrace │ │ │ └── instr │ │ │ ├── ArrayAccessInstrumentor.java │ │ │ ├── ArrayAllocInstrumentor.java │ │ │ ├── Assembler.java │ │ │ ├── BTraceBCPClassLoader.java │ │ │ ├── BTraceClassReader.java │ │ │ ├── BTraceClassWriter.java │ │ │ ├── BTraceMethodNode.java │ │ │ ├── BTraceMethodVisitor.java │ │ │ ├── BTraceProbe.java │ │ │ ├── BTraceProbeFactory.java │ │ │ ├── BTraceProbeNode.java │ │ │ ├── BTraceProbePersisted.java │ │ │ ├── BTraceProbeSupport.java │ │ │ ├── BTraceTransformer.java │ │ │ ├── BailoutException.java │ │ │ ├── CallGraph.java │ │ │ ├── CatchInstrumentor.java │ │ │ ├── ClassCache.java │ │ │ ├── ClassFilter.java │ │ │ ├── ClassInfo.java │ │ │ ├── Constants.java │ │ │ ├── CopyingVisitor.java │ │ │ ├── ErrorReturnInstrumentor.java │ │ │ ├── FieldAccessInstrumentor.java │ │ │ ├── HandlerRepositoryImpl.java │ │ │ ├── InstrPackGenerator.java │ │ │ ├── InstrumentUtils.java │ │ │ ├── InstrumentingMethodVisitor.java │ │ │ ├── Instrumentor.java │ │ │ ├── Level.java │ │ │ ├── LineNumberInstrumentor.java │ │ │ ├── LinkerInstrumentor.java │ │ │ ├── Location.java │ │ │ ├── MethodCallInstrumentor.java │ │ │ ├── MethodEntryExitInstrumentor.java │ │ │ ├── MethodEntryInstrumentor.java │ │ │ ├── MethodInstrumentor.java │ │ │ ├── MethodInstrumentorHelper.java │ │ │ ├── MethodReturnInstrumentor.java │ │ │ ├── MethodTracker.java │ │ │ ├── MethodVerifier.java │ │ │ ├── ObjectAllocInstrumentor.java │ │ │ ├── OnMethod.java │ │ │ ├── OnProbe.java │ │ │ ├── Preprocessor.java │ │ │ ├── ProbeDescriptor.java │ │ │ ├── ProbeDescriptorLoader.java │ │ │ ├── ProbeDump.java │ │ │ ├── ProbeRenameVisitor.java │ │ │ ├── ProbeUpgradeVisitor_1_2.java │ │ │ ├── RandomIntProvider.java │ │ │ ├── SpecialParameterHolder.java │ │ │ ├── StackTrackingMethodVisitor.java │ │ │ ├── SynchronizedInstrumentor.java │ │ │ ├── ThrowInstrumentor.java │ │ │ ├── TypeCheckInstrumentor.java │ │ │ ├── TypeUtils.java │ │ │ ├── VariableMapper.java │ │ │ ├── Verifier.java │ │ │ ├── random │ │ │ ├── SharedRandomIntProvider.java │ │ │ └── ThreadLocalRandomIntProvider.java │ │ │ └── templates │ │ │ ├── BTraceTemplates.java │ │ │ ├── BaseTemplateExpander.java │ │ │ ├── Template.java │ │ │ ├── TemplateExpander.java │ │ │ ├── TemplateExpanderVisitor.java │ │ │ └── impl │ │ │ └── MethodTrackingExpander.java │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── org.openjdk.btrace.compiler.PackGenerator │ │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── instr │ │ └── jaxb.index │ └── test │ ├── btrace │ ├── ExportTest.java │ ├── InterestingVarsTest.java │ ├── OnProbeTest.java │ ├── OnTimerTest.java │ ├── TLSTest.java │ ├── TraceAllTest.java │ ├── issues │ │ ├── BTRACE106.java │ │ ├── BTRACE189.java │ │ ├── BTRACE22.java │ │ ├── BTRACE256.java │ │ ├── BTRACE28.java │ │ ├── BTRACE53.java │ │ ├── BTRACE69.java │ │ ├── BTRACE87.java │ │ ├── BTRACE_333.java │ │ └── TezSplitter.java │ ├── onmethod │ │ ├── AllLines.java │ │ ├── AnytypeArgs.java │ │ ├── AnytypeArgsNoSelf.java │ │ ├── Args.java │ │ ├── Args2Sampled.java │ │ ├── ArgsDuration.java │ │ ├── ArgsDuration2.java │ │ ├── ArgsDuration2Err.java │ │ ├── ArgsDuration2Sampled.java │ │ ├── ArgsDurationBoxed.java │ │ ├── ArgsDurationBoxedErr.java │ │ ├── ArgsDurationConstructor.java │ │ ├── ArgsDurationConstructorErr.java │ │ ├── ArgsDurationErr.java │ │ ├── ArgsDurationMultiReturn.java │ │ ├── ArgsDurationSampled.java │ │ ├── ArgsNoSelf.java │ │ ├── ArgsReturn.java │ │ ├── ArgsReturnAugmented.java │ │ ├── ArgsReturnAugmented1.java │ │ ├── ArgsReturnBoxed.java │ │ ├── ArgsReturnSampled.java │ │ ├── ArgsReturnTypeMatch.java │ │ ├── ArgsReturnTypeNoMatch.java │ │ ├── ArgsReturnVoid.java │ │ ├── ArgsSampled.java │ │ ├── ArgsSampledAdaptive.java │ │ ├── ArgsSampledNoSampling.java │ │ ├── ArgsShared.java │ │ ├── ArgsSigMatch.java │ │ ├── ArgsUnsafe.java │ │ ├── ArrayGetAfter.java │ │ ├── ArrayGetAfterAny.java │ │ ├── ArrayGetBefore.java │ │ ├── ArrayGetBeforeAny.java │ │ ├── ArraySetAfter.java │ │ ├── ArraySetAfterAny.java │ │ ├── ArraySetBefore.java │ │ ├── ArraySetBeforeAny.java │ │ ├── Catch.java │ │ ├── CheckcastAfter.java │ │ ├── CheckcastBefore.java │ │ ├── ConstructorArgs.java │ │ ├── Error.java │ │ ├── ErrorCaught.java │ │ ├── ErrorDuration.java │ │ ├── FieldGetAfter.java │ │ ├── FieldGetAfterStatic.java │ │ ├── FieldGetBefore.java │ │ ├── FieldGetBeforeStatic.java │ │ ├── FieldSetAfter.java │ │ ├── FieldSetAfterStatic.java │ │ ├── FieldSetBefore.java │ │ ├── FieldSetBeforeStatic.java │ │ ├── InstanceofAfter.java │ │ ├── InstanceofBefore.java │ │ ├── Line.java │ │ ├── MatchAnnotated.java │ │ ├── MatchAnnotatedRegex.java │ │ ├── MatchDerived.java │ │ ├── MethodCall.java │ │ ├── MethodCallDuration.java │ │ ├── MethodCallDuration2.java │ │ ├── MethodCallDurationSampled.java │ │ ├── MethodCallDurationSampledMulti.java │ │ ├── MethodCallNoArgs.java │ │ ├── MethodCallReturn.java │ │ ├── MethodCallReturnAugmented.java │ │ ├── MethodCallReturnAugmented1.java │ │ ├── MethodCallSampled.java │ │ ├── MethodCallSampledAdaptive.java │ │ ├── MethodCallStatic.java │ │ ├── NativeWithReturn.java │ │ ├── NativeWithoutReturn.java │ │ ├── NewAfter.java │ │ ├── NewArrayIntAfter.java │ │ ├── NewArrayIntBefore.java │ │ ├── NewArrayStringAfter.java │ │ ├── NewArrayStringBefore.java │ │ ├── NewBefore.java │ │ ├── NoArgs.java │ │ ├── NoArgsEntryReturn.java │ │ ├── NoArgsEntryReturnNoCapture.java │ │ ├── ServicesTest.java │ │ ├── StaticArgs.java │ │ ├── StaticArgsReturn.java │ │ ├── StaticArgsSelf.java │ │ ├── StaticMethodCall.java │ │ ├── StaticMethodCallStatic.java │ │ ├── StaticNoArgs.java │ │ ├── StaticNoArgsSelf.java │ │ ├── SyncEntry.java │ │ ├── SyncExit.java │ │ ├── SyncMEntry.java │ │ ├── SyncMExit.java │ │ ├── Throw.java │ │ └── leveled │ │ │ ├── AnytypeArgs.java │ │ │ ├── AnytypeArgsNoSelf.java │ │ │ ├── Args.java │ │ │ ├── Args2Sampled.java │ │ │ ├── ArgsDuration.java │ │ │ ├── ArgsDuration2.java │ │ │ ├── ArgsDuration2Err.java │ │ │ ├── ArgsDuration2Sampled.java │ │ │ ├── ArgsDurationBoxed.java │ │ │ ├── ArgsDurationBoxedErr.java │ │ │ ├── ArgsDurationConstructor.java │ │ │ ├── ArgsDurationConstructorErr.java │ │ │ ├── ArgsDurationErr.java │ │ │ ├── ArgsDurationMultiReturn.java │ │ │ ├── ArgsDurationSampled.java │ │ │ ├── ArgsNoSelf.java │ │ │ ├── ArgsReturn.java │ │ │ ├── ArgsReturnAugmented.java │ │ │ ├── ArgsReturnAugmented1.java │ │ │ ├── ArgsReturnSampled.java │ │ │ ├── ArgsSampled.java │ │ │ ├── ArgsSampledAdaptive.java │ │ │ ├── ArgsSampledNoSampling.java │ │ │ ├── ArgsShared.java │ │ │ ├── ArgsUnsafe.java │ │ │ ├── ArrayGetAfter.java │ │ │ ├── ArrayGetAfterAny.java │ │ │ ├── ArrayGetBefore.java │ │ │ ├── ArrayGetBeforeAny.java │ │ │ ├── ArraySetAfter.java │ │ │ ├── ArraySetAfterAny.java │ │ │ ├── ArraySetBefore.java │ │ │ ├── ArraySetBeforeAny.java │ │ │ ├── Catch.java │ │ │ ├── CheckcastAfter.java │ │ │ ├── CheckcastBefore.java │ │ │ ├── ConstructorArgs.java │ │ │ ├── Error.java │ │ │ ├── ErrorCaught.java │ │ │ ├── ErrorDuration.java │ │ │ ├── FieldGetAfter.java │ │ │ ├── FieldGetAfterStatic.java │ │ │ ├── FieldGetBefore.java │ │ │ ├── FieldGetBeforeStatic.java │ │ │ ├── FieldSetAfter.java │ │ │ ├── FieldSetAfterStatic.java │ │ │ ├── FieldSetBefore.java │ │ │ ├── FieldSetBeforeStatic.java │ │ │ ├── InstanceofAfter.java │ │ │ ├── InstanceofBefore.java │ │ │ ├── Line.java │ │ │ ├── MatchDerived.java │ │ │ ├── MethodCall.java │ │ │ ├── MethodCallDuration.java │ │ │ ├── MethodCallDuration2.java │ │ │ ├── MethodCallDurationSampled.java │ │ │ ├── MethodCallDurationSampledMulti.java │ │ │ ├── MethodCallNoArgs.java │ │ │ ├── MethodCallReturn.java │ │ │ ├── MethodCallReturnAugmented.java │ │ │ ├── MethodCallReturnAugmented1.java │ │ │ ├── MethodCallSampled.java │ │ │ ├── MethodCallSampledAdaptive.java │ │ │ ├── MethodCallStatic.java │ │ │ ├── NativeWithReturn.java │ │ │ ├── NativeWithoutReturn.java │ │ │ ├── NewAfter.java │ │ │ ├── NewArrayIntAfter.java │ │ │ ├── NewArrayIntBefore.java │ │ │ ├── NewArrayStringAfter.java │ │ │ ├── NewArrayStringBefore.java │ │ │ ├── NewBefore.java │ │ │ ├── NoArgs.java │ │ │ ├── NoArgsEntryReturn.java │ │ │ ├── StaticArgs.java │ │ │ ├── StaticArgsReturn.java │ │ │ ├── StaticArgsSelf.java │ │ │ ├── StaticMethodCall.java │ │ │ ├── StaticMethodCallStatic.java │ │ │ ├── StaticNoArgs.java │ │ │ ├── StaticNoArgsSelf.java │ │ │ ├── SyncEntry.java │ │ │ ├── SyncExit.java │ │ │ ├── SyncMEntry.java │ │ │ ├── SyncMExit.java │ │ │ └── Throw.java │ ├── org.openjdk.btrace.xml │ └── verifier │ │ └── VerifierScript.java │ ├── java │ ├── org │ │ └── openjdk │ │ │ └── btrace │ │ │ ├── ArgsMapTest.java │ │ │ └── instr │ │ │ ├── BTraceProbeFactoryTest.java │ │ │ ├── CallGraphTest.java │ │ │ ├── ClassCacheTest.java │ │ │ ├── ClassInfoTest.java │ │ │ ├── ExtensionBootstrapTest.java │ │ │ ├── InstrStackTest.java │ │ │ ├── InstrumentUtilsTest.java │ │ │ ├── InstrumentingMethodVisitorTest.java │ │ │ ├── InstrumentorTestBase.java │ │ │ ├── MethodCounterTest.java │ │ │ ├── OnMethodInstrumenterTest.java │ │ │ ├── OnMethodTest.java │ │ │ ├── ProbeLoaderNewTest.java │ │ │ ├── ProbeLoaderOldTest.java │ │ │ ├── ProbeLoaderUpgradeTest.java │ │ │ ├── StackTrackingMethodVisitorTest.java │ │ │ └── VariableMapperTest.java │ ├── resources │ │ ├── AbstractClass.java │ │ ├── DerivedClass.java │ │ ├── InterestingVarsClass.java │ │ ├── Main.java │ │ ├── OnMethodTest.java │ │ ├── StackTrackerTest.java │ │ ├── TestApp.java │ │ ├── TestPrinter.java │ │ └── issues │ │ │ ├── BTRACE106.java │ │ │ ├── BTRACE22.java │ │ │ ├── BTRACE256.java │ │ │ ├── BTRACE28.java │ │ │ └── BTRACE87.java │ └── services │ │ ├── DummyRuntimeService.java │ │ └── DummySimpleService.java │ └── resources │ ├── instrumentorTestData │ ├── dynamic │ │ ├── ExportTest │ │ ├── OnProbeTest │ │ ├── OnTimerTest │ │ ├── ServicesTest │ │ ├── TLSTest │ │ ├── TraceAllTest │ │ ├── issues │ │ │ ├── BTRACE106 │ │ │ ├── BTRACE189 │ │ │ ├── BTRACE22 │ │ │ ├── BTRACE256 │ │ │ ├── BTRACE28 │ │ │ ├── BTRACE53 │ │ │ ├── BTRACE69 │ │ │ ├── BTRACE87 │ │ │ ├── BTRACE_333 │ │ │ ├── InterestingVarsTest │ │ │ └── TezSplitter │ │ └── onmethod │ │ │ ├── AllLines │ │ │ ├── AnytypeArgs │ │ │ ├── AnytypeArgsNoSelf │ │ │ ├── Args │ │ │ ├── Args2Sampled │ │ │ ├── ArgsDuration │ │ │ ├── ArgsDuration2 │ │ │ ├── ArgsDuration2Err │ │ │ ├── ArgsDuration2Sampled │ │ │ ├── ArgsDurationBoxed │ │ │ ├── ArgsDurationBoxedErr │ │ │ ├── ArgsDurationConstructor │ │ │ ├── ArgsDurationConstructorErr │ │ │ ├── ArgsDurationErr │ │ │ ├── ArgsDurationMultiReturn │ │ │ ├── ArgsDurationSampled │ │ │ ├── ArgsNoSelf │ │ │ ├── ArgsReturn │ │ │ ├── ArgsReturnAugmented │ │ │ ├── ArgsReturnAugmented1 │ │ │ ├── ArgsReturnBoxed │ │ │ ├── ArgsReturnSampled │ │ │ ├── ArgsReturnTypeMatch │ │ │ ├── ArgsReturnTypeNoMatch │ │ │ ├── ArgsReturnVoid │ │ │ ├── ArgsSampled │ │ │ ├── ArgsSampledAdaptive │ │ │ ├── ArgsSampledNoSampling │ │ │ ├── ArgsShared │ │ │ ├── ArgsSigMatch │ │ │ ├── ArgsUnsafe │ │ │ ├── ArrayGetAfter │ │ │ ├── ArrayGetAfterAny │ │ │ ├── ArrayGetBefore │ │ │ ├── ArrayGetBeforeAny │ │ │ ├── ArraySetAfter │ │ │ ├── ArraySetAfterAny │ │ │ ├── ArraySetBefore │ │ │ ├── ArraySetBeforeAny │ │ │ ├── Catch │ │ │ ├── CheckcastAfter │ │ │ ├── CheckcastBefore │ │ │ ├── ConstructorArgs │ │ │ ├── Error │ │ │ ├── ErrorCaught │ │ │ ├── ErrorDuration │ │ │ ├── FieldGetAfter │ │ │ ├── FieldGetAfterStatic │ │ │ ├── FieldGetBefore │ │ │ ├── FieldGetBeforeStatic │ │ │ ├── FieldSetAfter │ │ │ ├── FieldSetAfterStatic │ │ │ ├── FieldSetBefore │ │ │ ├── FieldSetBeforeStatic │ │ │ ├── InstanceofAfter │ │ │ ├── InstanceofBefore │ │ │ ├── Line │ │ │ ├── MatchAnnotated │ │ │ ├── MatchAnnotatedRegex │ │ │ ├── MatchDerived │ │ │ ├── MethodCall │ │ │ ├── MethodCallDuration │ │ │ ├── MethodCallDuration2 │ │ │ ├── MethodCallDurationSampled │ │ │ ├── MethodCallDurationSampledMulti │ │ │ ├── MethodCallNoArgs │ │ │ ├── MethodCallReturn │ │ │ ├── MethodCallReturnAugmented │ │ │ ├── MethodCallReturnAugmented1 │ │ │ ├── MethodCallSampled │ │ │ ├── MethodCallSampledAdaptive │ │ │ ├── MethodCallStatic │ │ │ ├── NativeWithReturn │ │ │ ├── NativeWithoutReturn │ │ │ ├── NewAfter │ │ │ ├── NewArrayIntAfter │ │ │ ├── NewArrayIntBefore │ │ │ ├── NewArrayStringAfter │ │ │ ├── NewArrayStringBefore │ │ │ ├── NewBefore │ │ │ ├── NoArgs │ │ │ ├── NoArgsEntryReturn │ │ │ ├── NoArgsEntryReturnNoCapture │ │ │ ├── StaticArgs │ │ │ ├── StaticArgsReturn │ │ │ ├── StaticArgsSelf │ │ │ ├── StaticMethodCall │ │ │ ├── StaticMethodCallStatic │ │ │ ├── StaticNoArgs │ │ │ ├── StaticNoArgsSelf │ │ │ ├── SyncEntry │ │ │ ├── SyncExit │ │ │ ├── SyncMEntry │ │ │ ├── SyncMExit │ │ │ ├── Throw │ │ │ └── leveled │ │ │ ├── AnytypeArgs │ │ │ ├── AnytypeArgsNoSelf │ │ │ ├── Args │ │ │ ├── Args2Sampled │ │ │ ├── ArgsDuration │ │ │ ├── ArgsDuration2 │ │ │ ├── ArgsDuration2Err │ │ │ ├── ArgsDuration2Sampled │ │ │ ├── ArgsDurationBoxed │ │ │ ├── ArgsDurationBoxedErr │ │ │ ├── ArgsDurationConstructor │ │ │ ├── ArgsDurationConstructorErr │ │ │ ├── ArgsDurationErr │ │ │ ├── ArgsDurationMultiReturn │ │ │ ├── ArgsDurationSampled │ │ │ ├── ArgsNoSelf │ │ │ ├── ArgsReturn │ │ │ ├── ArgsReturnAugmented │ │ │ ├── ArgsReturnAugmented1 │ │ │ ├── ArgsReturnSampled │ │ │ ├── ArgsSampled │ │ │ ├── ArgsSampledAdaptive │ │ │ ├── ArgsSampledNoSampling │ │ │ ├── ArgsShared │ │ │ ├── ArgsUnsafe │ │ │ ├── ArrayGetAfter │ │ │ ├── ArrayGetAfterAny │ │ │ ├── ArrayGetBefore │ │ │ ├── ArrayGetBeforeAny │ │ │ ├── ArraySetAfter │ │ │ ├── ArraySetAfterAny │ │ │ ├── ArraySetBefore │ │ │ ├── ArraySetBeforeAny │ │ │ ├── Catch │ │ │ ├── CheckcastAfter │ │ │ ├── CheckcastBefore │ │ │ ├── ConstructorArgs │ │ │ ├── Error │ │ │ ├── ErrorCaught │ │ │ ├── ErrorDuration │ │ │ ├── FieldGetAfter │ │ │ ├── FieldGetAfterStatic │ │ │ ├── FieldGetBefore │ │ │ ├── FieldGetBeforeStatic │ │ │ ├── FieldSetAfter │ │ │ ├── FieldSetAfterStatic │ │ │ ├── FieldSetBefore │ │ │ ├── FieldSetBeforeStatic │ │ │ ├── InstanceofAfter │ │ │ ├── InstanceofBefore │ │ │ ├── Line │ │ │ ├── MatchDerived │ │ │ ├── MethodCall │ │ │ ├── MethodCallDuration │ │ │ ├── MethodCallDuration2 │ │ │ ├── MethodCallDurationSampled │ │ │ ├── MethodCallDurationSampledMulti │ │ │ ├── MethodCallNoArgs │ │ │ ├── MethodCallReturn │ │ │ ├── MethodCallReturnAugmented │ │ │ ├── MethodCallReturnAugmented1 │ │ │ ├── MethodCallSampled │ │ │ ├── MethodCallSampledAdaptive │ │ │ ├── MethodCallStatic │ │ │ ├── NativeWithReturn │ │ │ ├── NativeWithoutReturn │ │ │ ├── NewAfter │ │ │ ├── NewArrayIntAfter │ │ │ ├── NewArrayIntBefore │ │ │ ├── NewArrayStringAfter │ │ │ ├── NewArrayStringBefore │ │ │ ├── NewBefore │ │ │ ├── NoArgs │ │ │ ├── NoArgsEntryReturn │ │ │ ├── StaticArgs │ │ │ ├── StaticArgsReturn │ │ │ ├── StaticArgsSelf │ │ │ ├── StaticMethodCall │ │ │ ├── StaticMethodCallStatic │ │ │ ├── StaticNoArgs │ │ │ ├── StaticNoArgsSelf │ │ │ ├── SyncEntry │ │ │ ├── SyncExit │ │ │ ├── SyncMEntry │ │ │ ├── SyncMExit │ │ │ └── Throw │ └── static │ │ ├── ExportTest │ │ ├── OnProbeTest │ │ ├── OnTimerTest │ │ ├── ServicesTest │ │ ├── TLSTest │ │ ├── TraceAllTest │ │ ├── issues │ │ ├── BTRACE106 │ │ ├── BTRACE189 │ │ ├── BTRACE22 │ │ ├── BTRACE256 │ │ ├── BTRACE28 │ │ ├── BTRACE53 │ │ ├── BTRACE69 │ │ ├── BTRACE87 │ │ ├── BTRACE_333 │ │ ├── InterestingVarsTest │ │ └── TezSplitter │ │ └── onmethod │ │ ├── AllLines │ │ ├── AnytypeArgs │ │ ├── AnytypeArgsNoSelf │ │ ├── Args │ │ ├── Args2Sampled │ │ ├── ArgsDuration │ │ ├── ArgsDuration2 │ │ ├── ArgsDuration2Err │ │ ├── ArgsDuration2Sampled │ │ ├── ArgsDurationBoxed │ │ ├── ArgsDurationBoxedErr │ │ ├── ArgsDurationConstructor │ │ ├── ArgsDurationConstructorErr │ │ ├── ArgsDurationErr │ │ ├── ArgsDurationMultiReturn │ │ ├── ArgsDurationSampled │ │ ├── ArgsNoSelf │ │ ├── ArgsReturn │ │ ├── ArgsReturnAugmented │ │ ├── ArgsReturnAugmented1 │ │ ├── ArgsReturnBoxed │ │ ├── ArgsReturnSampled │ │ ├── ArgsReturnTypeMatch │ │ ├── ArgsReturnTypeNoMatch │ │ ├── ArgsReturnVoid │ │ ├── ArgsSampled │ │ ├── ArgsSampledAdaptive │ │ ├── ArgsSampledNoSampling │ │ ├── ArgsShared │ │ ├── ArgsSigMatch │ │ ├── ArgsUnsafe │ │ ├── ArrayGetAfter │ │ ├── ArrayGetAfterAny │ │ ├── ArrayGetBefore │ │ ├── ArrayGetBeforeAny │ │ ├── ArraySetAfter │ │ ├── ArraySetAfterAny │ │ ├── ArraySetBefore │ │ ├── ArraySetBeforeAny │ │ ├── Catch │ │ ├── CheckcastAfter │ │ ├── CheckcastBefore │ │ ├── ConstructorArgs │ │ ├── Error │ │ ├── ErrorCaught │ │ ├── ErrorDuration │ │ ├── FieldGetAfter │ │ ├── FieldGetAfterStatic │ │ ├── FieldGetBefore │ │ ├── FieldGetBeforeStatic │ │ ├── FieldSetAfter │ │ ├── FieldSetAfterStatic │ │ ├── FieldSetBefore │ │ ├── FieldSetBeforeStatic │ │ ├── InstanceofAfter │ │ ├── InstanceofBefore │ │ ├── Line │ │ ├── MatchAnnotated │ │ ├── MatchAnnotatedRegex │ │ ├── MatchDerived │ │ ├── MethodCall │ │ ├── MethodCallDuration │ │ ├── MethodCallDuration2 │ │ ├── MethodCallDurationSampled │ │ ├── MethodCallDurationSampledMulti │ │ ├── MethodCallNoArgs │ │ ├── MethodCallReturn │ │ ├── MethodCallReturnAugmented │ │ ├── MethodCallReturnAugmented1 │ │ ├── MethodCallSampled │ │ ├── MethodCallSampledAdaptive │ │ ├── MethodCallStatic │ │ ├── NativeWithReturn │ │ ├── NativeWithoutReturn │ │ ├── NewAfter │ │ ├── NewArrayIntAfter │ │ ├── NewArrayIntBefore │ │ ├── NewArrayStringAfter │ │ ├── NewArrayStringBefore │ │ ├── NewBefore │ │ ├── NoArgs │ │ ├── NoArgsEntryReturn │ │ ├── NoArgsEntryReturnNoCapture │ │ ├── StaticArgs │ │ ├── StaticArgsReturn │ │ ├── StaticArgsSelf │ │ ├── StaticMethodCall │ │ ├── StaticMethodCallStatic │ │ ├── StaticNoArgs │ │ ├── StaticNoArgsSelf │ │ ├── SyncEntry │ │ ├── SyncExit │ │ ├── SyncMEntry │ │ ├── SyncMExit │ │ ├── Throw │ │ └── leveled │ │ ├── AnytypeArgs │ │ ├── AnytypeArgsNoSelf │ │ ├── Args │ │ ├── Args2Sampled │ │ ├── ArgsDuration │ │ ├── ArgsDuration2 │ │ ├── ArgsDuration2Err │ │ ├── ArgsDuration2Sampled │ │ ├── ArgsDurationBoxed │ │ ├── ArgsDurationBoxedErr │ │ ├── ArgsDurationConstructor │ │ ├── ArgsDurationConstructorErr │ │ ├── ArgsDurationErr │ │ ├── ArgsDurationMultiReturn │ │ ├── ArgsDurationSampled │ │ ├── ArgsNoSelf │ │ ├── ArgsReturn │ │ ├── ArgsReturnAugmented │ │ ├── ArgsReturnAugmented1 │ │ ├── ArgsReturnSampled │ │ ├── ArgsSampled │ │ ├── ArgsSampledAdaptive │ │ ├── ArgsSampledNoSampling │ │ ├── ArgsShared │ │ ├── ArgsUnsafe │ │ ├── ArrayGetAfter │ │ ├── ArrayGetAfterAny │ │ ├── ArrayGetBefore │ │ ├── ArrayGetBeforeAny │ │ ├── ArraySetAfter │ │ ├── ArraySetAfterAny │ │ ├── ArraySetBefore │ │ ├── ArraySetBeforeAny │ │ ├── Catch │ │ ├── CheckcastAfter │ │ ├── CheckcastBefore │ │ ├── ConstructorArgs │ │ ├── Error │ │ ├── ErrorCaught │ │ ├── ErrorDuration │ │ ├── FieldGetAfter │ │ ├── FieldGetAfterStatic │ │ ├── FieldGetBefore │ │ ├── FieldGetBeforeStatic │ │ ├── FieldSetAfter │ │ ├── FieldSetAfterStatic │ │ ├── FieldSetBefore │ │ ├── FieldSetBeforeStatic │ │ ├── InstanceofAfter │ │ ├── InstanceofBefore │ │ ├── Line │ │ ├── MatchDerived │ │ ├── MethodCall │ │ ├── MethodCallDuration │ │ ├── MethodCallDuration2 │ │ ├── MethodCallDurationSampled │ │ ├── MethodCallDurationSampledMulti │ │ ├── MethodCallNoArgs │ │ ├── MethodCallReturn │ │ ├── MethodCallReturnAugmented │ │ ├── MethodCallReturnAugmented1 │ │ ├── MethodCallSampled │ │ ├── MethodCallSampledAdaptive │ │ ├── MethodCallStatic │ │ ├── NativeWithReturn │ │ ├── NativeWithoutReturn │ │ ├── NewAfter │ │ ├── NewArrayIntAfter │ │ ├── NewArrayIntBefore │ │ ├── NewArrayStringAfter │ │ ├── NewArrayStringBefore │ │ ├── NewBefore │ │ ├── NoArgs │ │ ├── NoArgsEntryReturn │ │ ├── StaticArgs │ │ ├── StaticArgsReturn │ │ ├── StaticArgsSelf │ │ ├── StaticMethodCall │ │ ├── StaticMethodCallStatic │ │ ├── StaticNoArgs │ │ ├── StaticNoArgsSelf │ │ ├── SyncEntry │ │ ├── SyncExit │ │ ├── SyncMEntry │ │ ├── SyncMExit │ │ └── Throw │ ├── packed │ └── test-pack.jar │ ├── plain.txt │ └── resources │ └── classdata │ ├── AllStuff.btrc │ ├── BackpackExtensionTest.clazz │ ├── OnMethodTest.btrc │ ├── PackVersion1.btrc │ ├── ProbeScript.btrc │ ├── TezSplitter.clazz │ └── TraceScript.clazz ├── btrace-runtime ├── build.gradle └── src │ └── main │ ├── java │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── runtime │ │ ├── BTraceMBean.java │ │ ├── BTraceRuntimeAccess.java │ │ ├── BTraceRuntimeImplBase.java │ │ ├── BTraceRuntimeImplFactory.java │ │ ├── BTraceRuntimeImpl_8.java │ │ ├── BTraceRuntimes.java │ │ ├── CommandQueue.java │ │ ├── DOTWriter.java │ │ ├── DotWriterFormatter.java │ │ ├── ExitException.java │ │ ├── Interval.java │ │ ├── JfrEventFactoryImpl.java │ │ ├── JfrEventImpl.java │ │ ├── LinkingFlag.java │ │ ├── NullPerfReaderImpl.java │ │ ├── PerfReader.java │ │ ├── XMLSerializer.java │ │ ├── auxiliary │ │ └── Auxiliary.java │ │ └── profiling │ │ ├── MethodInvocationProfiler.java │ │ └── MethodInvocationRecorder.java │ ├── java11 │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── runtime │ │ └── BTraceRuntimeImpl_11.java │ ├── java15 │ └── org │ │ └── openjdk │ │ └── btrace │ │ └── runtime │ │ └── Indy.java │ └── java9 │ └── org │ └── openjdk │ └── btrace │ └── runtime │ └── BTraceRuntimeImpl_9.java ├── btrace-services-api ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── openjdk │ └── btrace │ └── services │ ├── api │ ├── RuntimeContext.java │ └── Service.java │ └── spi │ ├── BTraceService.java │ ├── RuntimeService.java │ └── SimpleService.java ├── btrace-services ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── openjdk │ └── btrace │ └── services │ └── impl │ └── Printer.java ├── btrace-statsd ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── openjdk │ └── btrace │ └── statsd │ ├── QManager.java │ └── Statsd.java ├── btrace-ui └── build.gradle ├── btraceio.png ├── btraceio_small.png ├── build.gradle ├── buildSrc └── shared.gradle ├── common.gradle ├── docs ├── BTraceTutorial.md └── releasing.md ├── gradle ├── spotless.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── integration-tests ├── build.gradle └── src │ ├── main │ └── java │ │ └── dummy │ │ ├── SimpleEvent.java │ │ └── SimplePeriodicEvent.java │ └── test │ ├── btrace │ ├── JfrTest.java │ ├── OSMBeanTest.java │ ├── OnExitTest.java │ ├── OnMethodLevelTest.java │ ├── OnMethodReturnTest.java │ ├── OnMethodSubclassTest.java │ ├── OnMethodTest.java │ ├── OnProbeTest.java │ ├── OnTimerArgTest.java │ ├── OnTimerTest.java │ ├── PerfCounterTest.java │ ├── ProbeArgsTest.java │ ├── ThreadStart.java │ ├── TraceAllTest.java │ ├── issues │ │ └── BTRACE400.java │ └── org.openjdk.btrace.xml │ └── java │ ├── resources │ ├── Main.java │ ├── TestApp.java │ ├── TestPrinter.java │ └── ThreadSpawner.java │ └── tests │ ├── BTraceFunctionalTests.java │ └── RuntimeTest.java ├── renovate.json ├── run_tests.sh └── settings.gradle /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: jbachorik 10 | issuehunt: jbachorik 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v9 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'Stale issue message' 17 | stale-pr-message: 'Stale pull request message' 18 | stale-issue-label: 'no-issue-activity' 19 | stale-pr-label: 'no-pr-activity' 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | 3 | # Mobile Tools for Java (J2ME) 4 | .mtj.tmp/ 5 | 6 | # Package Files # 7 | *.jar 8 | *.war 9 | *.ear 10 | 11 | # Un-ignore specific files 12 | !btrace-instr/src/test/resources/packed/test-pack.jar 13 | 14 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 15 | hs_err_pid* 16 | 17 | build 18 | dist 19 | make/netbeans/nbproject/private 20 | TEST-* 21 | make/junit* 22 | make/private.properties 23 | btrace-benchmark/target 24 | btrace-benchmark/build 25 | benchmark/*.iml 26 | junit* 27 | /btrace-statsd/target/ 28 | *.iml 29 | .gradle 30 | .idea 31 | !/lib/btrace-asm-*.jar 32 | !/lib/btrace-jctools-core-*.jar 33 | !/lib/btrace-hppcrt-*.jar 34 | !/test-lib/*.jar 35 | CHANGELOG.md 36 | gradle.properties 37 | /.nb-gradle/ 38 | /.nb-gradle-properties 39 | .github_changelog_generator 40 | **/out/* 41 | gradle-wrapper.properties 42 | 43 | /.java.versions 44 | -------------------------------------------------------------------------------- /btrace-agent/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation libs.slf4j 3 | implementation libs.asm 4 | 5 | def toolsJar = getToolsJar(); 6 | if (toolsJar.getAsFile().exists()) { 7 | implementation files("${toolsJar}") 8 | } 9 | implementation project(':btrace-core') 10 | implementation project(':btrace-services-api') 11 | implementation project(':btrace-runtime') 12 | implementation project(':btrace-instr') 13 | } -------------------------------------------------------------------------------- /btrace-agent/src/main/resources/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Premain-Class: org.openjdk.btrace.agent.Main 2 | Agent-Class: org.openjdk.btrace.agent.Main 3 | Can-Redefine-Classes: true 4 | Can-Retransform-Classes: true 5 | Boot-Class-Path: btrace-boot.jar 6 | -------------------------------------------------------------------------------- /btrace-compiler/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | // https://mvnrepository.com/artifact/org.ow2.asm/asm 3 | implementation libs.asm 4 | implementation libs.asm.util 5 | 6 | def toolsJar = getToolsJar(); 7 | if (toolsJar.getAsFile().exists()) { 8 | implementation files("${toolsJar}") 9 | } 10 | implementation project(path: ':btrace-core') 11 | implementation project(path: ':btrace-runtime') 12 | runtimeOnly project(path: ':btrace-instr') 13 | 14 | testImplementation project(path: ':btrace-instr') 15 | } 16 | -------------------------------------------------------------------------------- /btrace-compiler/src/main/java/org/openjdk/btrace/compiler/AnnotationSerializer.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.compiler; 2 | 3 | import org.objectweb.asm.tree.AnnotationNode; 4 | 5 | public class AnnotationSerializer { 6 | public static void serialize(AnnotationNode an, StringBuilder sb) { 7 | sb.append("{type:").append(an.desc).append(','); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /btrace-compiler/src/main/java/org/openjdk/btrace/compiler/PackGenerator.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.compiler; 2 | 3 | import java.io.IOException; 4 | 5 | public interface PackGenerator { 6 | byte[] generateProbePack(byte[] data) throws IOException; 7 | } 8 | -------------------------------------------------------------------------------- /btrace-compiler/src/test/resources/HistoProbe.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import static org.openjdk.btrace.core.BTraceUtils.*; 4 | import org.openjdk.btrace.core.annotations.*; 5 | 6 | import java.util.Map; 7 | import java.util.concurrent.atomic.AtomicInteger; 8 | 9 | @BTrace public class HistoProbe { 10 | private static Map histo = newHashMap(); 11 | @OnMethod(clazz = "javax.swing.JComponent", method = "") 12 | public static void onMethod(@Self Object obj) { 13 | String cn = name(classOf(obj)); 14 | AtomicInteger ai = get((Map)histo, cn); 15 | if (ai == null) { 16 | ai = newAtomicInteger(1); 17 | put(histo, cn, ai); 18 | } else { 19 | incrementAndGet(ai); // WORKS if commented out 20 | } 21 | } 22 | 23 | @OnTimer(1000) 24 | public static void print() { 25 | printNumberMap("Component Histogram", histo); 26 | } 27 | } -------------------------------------------------------------------------------- /btrace-compiler/src/test/resources/JfrEventsProbe.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import org.openjdk.btrace.core.BTraceUtils; 4 | import org.openjdk.btrace.core.annotations.*; 5 | import org.openjdk.btrace.core.jfr.JfrEvent; 6 | import static org.openjdk.btrace.core.BTraceUtils.*; 7 | import static org.openjdk.btrace.core.BTraceUtils.Jfr.*; 8 | 9 | @BTrace public class JfrEventsProbe { 10 | @Event( 11 | name = "CustomEvent", 12 | label = "Custom Event", 13 | fields = { 14 | @Event.Field(type = Event.FieldType.INT, name = "a"), 15 | @Event.Field(type = Event.FieldType.STRING, name = "b") 16 | } 17 | ) 18 | private static JfrEvent.Factory customEventFactory; 19 | 20 | @OnMethod(clazz = "/.*/", method = "/.*/") 21 | public static void onMethod() { 22 | JfrEvent event = prepareEvent(customEventFactory); 23 | setEventField(event, "a", 10); 24 | setEventField(event, "b", "hello"); 25 | commit(event); 26 | } 27 | 28 | @PeriodicEvent(name = "PeriodicEvent", fields = @Event.Field(type = Event.FieldType.INT, name = "cnt", kind = @Event.Field.Kind(name = Event.FieldKind.TIMESTAMP)), period = "1 s") 29 | public static void onPeriod(JfrEvent event) { 30 | if (shouldCommit(event)) { 31 | setEventField(event, "cnt", 1); 32 | commit(event); 33 | } 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /btrace-core/build.gradle: -------------------------------------------------------------------------------- 1 | import org.apache.tools.ant.filters.* 2 | 3 | buildscript { scriptHandler -> 4 | apply from: rootProject.file('buildSrc/shared.gradle'), to: scriptHandler 5 | } 6 | 7 | plugins { 8 | alias(libs.plugins.versioning) 9 | } 10 | 11 | dependencies { 12 | implementation libs.slf4j 13 | implementation libs.slf4j.simple 14 | implementation libs.jctools 15 | implementation libs.asm 16 | implementation libs.asm.util 17 | } 18 | 19 | processResources { 20 | filter ReplaceTokens, tokens: [ 21 | "btrace.version": project.version, 22 | "hash" : versioning.info.commit 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/Function.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core; 2 | 3 | public interface Function { 4 | R apply(T value); 5 | } 6 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/HandlerRepository.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core; 2 | 3 | /** 4 | * A bridge interface between a handler repository implementation and the invoke dynamic bootstrap 5 | * class doing the handler lookup. 6 | */ 7 | @FunctionalInterface 8 | public interface HandlerRepository { 9 | byte[] getProbeHandler( 10 | String callerName, String probeName, String handlerName, String handlerDesc); 11 | } 12 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/comm/DisconnectCommand.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.comm; 2 | 3 | import java.io.IOException; 4 | import java.io.ObjectInput; 5 | import java.io.ObjectOutput; 6 | import java.io.PrintWriter; 7 | 8 | /** 9 | * @since WireIO v.1 10 | */ 11 | public final class DisconnectCommand extends Command implements PrintableCommand { 12 | private String probeId = ""; 13 | 14 | public DisconnectCommand() { 15 | super(Command.DISCONNECT, true); 16 | } 17 | 18 | public DisconnectCommand(String probeId) { 19 | super(Command.DISCONNECT, true); 20 | this.probeId = probeId; 21 | } 22 | 23 | @Override 24 | protected void write(ObjectOutput out) throws IOException { 25 | out.writeUTF(probeId); 26 | } 27 | 28 | @SuppressWarnings("RedundantThrows") 29 | @Override 30 | protected void read(ObjectInput in) throws IOException, ClassNotFoundException { 31 | probeId = in.readUTF(); 32 | } 33 | 34 | public void setProbeId(String probeId) { 35 | this.probeId = probeId; 36 | } 37 | 38 | @Override 39 | public void print(PrintWriter out) { 40 | out.println("BTrace Probe: " + probeId); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/comm/ReconnectCommand.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.comm; 2 | 3 | import java.io.IOException; 4 | import java.io.ObjectInput; 5 | import java.io.ObjectOutput; 6 | 7 | /** 8 | * @since WireIO v.1 9 | */ 10 | public class ReconnectCommand extends Command { 11 | public static final int STATUS_FLAG = 8; 12 | 13 | private String probeId; 14 | 15 | public ReconnectCommand() { 16 | super(Command.RECONNECT); 17 | } 18 | 19 | public ReconnectCommand(String probeId) { 20 | super(Command.RECONNECT); 21 | this.probeId = probeId; 22 | } 23 | 24 | @Override 25 | protected void write(ObjectOutput out) throws IOException { 26 | out.writeUTF(probeId); 27 | } 28 | 29 | @SuppressWarnings("RedundantThrows") 30 | @Override 31 | protected void read(ObjectInput in) throws IOException, ClassNotFoundException { 32 | probeId = in.readUTF(); 33 | } 34 | 35 | public String getProbeId() { 36 | return probeId; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/handlers/ErrorHandler.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.handlers; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | public final class ErrorHandler { 6 | public final String method; 7 | 8 | public ErrorHandler(String method) { 9 | this.method = method; 10 | } 11 | 12 | public Method getMethod(Class clz) throws NoSuchMethodException { 13 | return clz.getMethod(method, Throwable.class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/handlers/EventHandler.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.handlers; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | public final class EventHandler { 6 | public static final String ALL_EVENTS = ""; 7 | 8 | public final String method; 9 | private final String event; 10 | 11 | public EventHandler(String method, String event) { 12 | this.method = method; 13 | this.event = event; 14 | } 15 | 16 | public String getEvent() { 17 | return event != null ? event : ALL_EVENTS; 18 | } 19 | 20 | public Method getMethod(Class clz) throws NoSuchMethodException { 21 | return clz.getMethod(method); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/handlers/ExitHandler.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.handlers; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | public class ExitHandler { 6 | public final String method; 7 | 8 | public ExitHandler(String method) { 9 | this.method = method; 10 | } 11 | 12 | public Method getMethod(Class clz) throws NoSuchMethodException { 13 | return clz.getMethod(method, int.class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/handlers/LowMemoryHandler.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.handlers; 2 | 3 | import java.lang.management.MemoryUsage; 4 | import java.lang.reflect.InvocationTargetException; 5 | import java.lang.reflect.Method; 6 | 7 | public final class LowMemoryHandler { 8 | public final String method; 9 | public final String pool; 10 | public final String thresholdProperty; 11 | public final long threshold; 12 | public final boolean trackUsage; 13 | private Method executable; 14 | 15 | public LowMemoryHandler( 16 | String method, String pool, long threshold, String thresholdProperty, boolean trackUsage) { 17 | this.method = method; 18 | this.pool = pool; 19 | this.threshold = threshold; 20 | this.thresholdProperty = thresholdProperty; 21 | this.trackUsage = trackUsage; 22 | } 23 | 24 | public synchronized Method getMethod(Class clz) throws NoSuchMethodException { 25 | if (executable == null) { 26 | executable = trackUsage ? clz.getMethod(method, MemoryUsage.class) : clz.getMethod(method); 27 | } 28 | return executable; 29 | } 30 | 31 | public void invoke(Class clz, Object... args) 32 | throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { 33 | getMethod(clz).invoke(clz, null, args); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /btrace-core/src/main/java/org/openjdk/btrace/core/handlers/TimerHandler.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core.handlers; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | public final class TimerHandler { 6 | public final String method; 7 | public final long period; 8 | public final String periodArg; 9 | 10 | public TimerHandler(String method, long period, String periodArg) { 11 | this.method = method; 12 | this.period = period; 13 | this.periodArg = periodArg; 14 | } 15 | 16 | public Method getMethod(Class clz) throws NoSuchMethodException { 17 | return clz.getMethod(method); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /btrace-core/src/main/resources/org/openjdk/btrace/core/annotations/jaxb.index: -------------------------------------------------------------------------------- 1 | Kind 2 | Where 3 | -------------------------------------------------------------------------------- /btrace-core/src/test/java/org/openjdk/btrace/core/ReflectiveFieldAccessTest.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.core; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertThrows; 4 | import static org.junit.jupiter.api.Assertions.assertTrue; 5 | 6 | import org.junit.jupiter.api.Test; 7 | 8 | class ReflectiveFieldAccessTest { 9 | 10 | @Test 11 | public void getIntTest() { 12 | D a = new D(); 13 | RuntimeException exception = 14 | assertThrows(RuntimeException.class, () -> BTraceUtils.Reflective.getInt("notExist", a)); 15 | assertTrue(exception.getMessage().contains("notExist")); 16 | } 17 | 18 | static class A { 19 | int a; 20 | } 21 | 22 | static class B extends A {} 23 | 24 | static class C extends A {} 25 | 26 | static class D extends C {} 27 | } 28 | -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/COPYRIGHT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-dist/src/main/resources/COPYRIGHT -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/bin/btrace.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem %~dp0 is expanded pathname of the current script under NT 4 | set DEFAULT_BTRACE_HOME=%~dp0.. 5 | 6 | if "%BTRACE_HOME%"=="" set BTRACE_HOME=%DEFAULT_BTRACE_HOME% 7 | set DEFAULT_BTRACE_HOME= 8 | 9 | if not exist "%BTRACE_HOME%\libs\btrace-client.jar" goto noBTraceHome 10 | 11 | if "%JAVA_HOME%" == "" goto noJavaHome 12 | set JAVA_ARGS="-XX:+IgnoreUnrecognizedVMOptions" 13 | if exist "%JAVA_HOME%/jmods/" ( 14 | set JAVA_ARGS="%JAVA_ARGS% -XX:+AllowRedefinitionToAddDeleteMethods" 15 | set JAVA_ARGS="%JAVA_ARGS% --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED" 16 | ) 17 | "%JAVA_HOME%/bin/java" "%JAVA_ARGS%" -cp "%BTRACE_HOME%/libs/btrace-client.jar;%JAVA_HOME%/lib/tools.jar" org.openjdk.btrace.client.Main %* 18 | goto end 19 | :noJavaHome 20 | echo Please set JAVA_HOME before running this script 21 | goto end 22 | :noBTraceHome 23 | echo Please set BTRACE_HOME before running this script 24 | :end 25 | -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/bin/btracec.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem %~dp0 is expanded pathname of the current script under NT 4 | set DEFAULT_BTRACE_HOME=%~dp0.. 5 | 6 | if "%BTRACE_HOME%"=="" set BTRACE_HOME=%DEFAULT_BTRACE_HOME% 7 | set DEFAULT_BTRACE_HOME= 8 | 9 | if not exist "%BTRACE_HOME%\libs\btrace-client.jar" goto noBTraceHome 10 | 11 | if "%JAVA_HOME%" == "" goto noJavaHome 12 | if exist "%JAVA_HOME%/jmods/" ( 13 | set JAVA_ARGS="%JAVA_ARGS% -XX:+AllowRedefinitionToAddDeleteMethods" 14 | set JAVA_ARGS="%JAVA_ARGS% --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED" 15 | ) 16 | if "%1" == "--version" ( 17 | %JAVA_HOME%\bin\java "%JAVA_ARGS%" -cp %BTRACE_HOME%/build/btrace-client.jar org.openjdk.btrace.client.Main --version 18 | goto end 19 | ) 20 | "%JAVA_HOME%/bin/java" "%JAVA_ARGS%" -cp "%BTRACE_HOME%/libs/btrace-client.jar;%JAVA_HOME%/lib/tools.jar" org.openjdk.btrace.compiler.Compiler %* 21 | goto end 22 | :noJavaHome 23 | echo Please set JAVA_HOME before running this script 24 | goto end 25 | :noBTraceHome 26 | echo Please set BTRACE_HOME before running this script 27 | :end -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/bin/btracep.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem %~dp0 is expanded pathname of the current script under NT 4 | set DEFAULT_BTRACE_HOME=%~dp0.. 5 | 6 | if "%BTRACE_HOME%"=="" set BTRACE_HOME=%DEFAULT_BTRACE_HOME% 7 | set DEFAULT_BTRACE_HOME= 8 | 9 | if not exist "%BTRACE_HOME%\libs\btrace-client.jar" goto noBTraceHome 10 | 11 | if "%JAVA_HOME%" == "" goto noJavaHome 12 | if exist "%JAVA_HOME%/jmods/" ( 13 | set JAVA_ARGS="%JAVA_ARGS% -XX:+AllowRedefinitionToAddDeleteMethods" 14 | set JAVA_ARGS="%JAVA_ARGS% --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED" 15 | ) 16 | if "%1" == "--version" ( 17 | %JAVA_HOME%\bin\java "%JAVA_ARGS%" -cp %BTRACE_HOME%/build/btrace-client.jar org.openjdk.btrace.client.Main --version 18 | goto end 19 | ) 20 | "%JAVA_HOME%/bin/java" "%JAVA_ARGS%" -cp "%BTRACE_HOME%/libs/btrace-client.jar;%JAVA_HOME%/lib/tools.jar" org.openjdk.btrace.client.ProbePrinter $* 21 | goto end 22 | :noJavaHome 23 | echo Please set JAVA_HOME before running this script 24 | goto end 25 | :noBTraceHome 26 | echo Please set BTRACE_HOME before running this script 27 | :end -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/libs/amd64/libbtrace.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-dist/src/main/resources/libs/amd64/libbtrace.so -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/samples/classload.d: -------------------------------------------------------------------------------- 1 | /* 2 | * This D-script prints one line on each Java class 3 | * load and unload. To mark DTrace message begin, this 4 | * script prints a message on DTrace session start. 5 | */ 6 | 7 | BEGIN { 8 | printf("dtrace start\n"); 9 | } 10 | 11 | hotspot$1:::class-loaded { 12 | printf("loaded %s\n", copyinstr(arg0, arg1)); 13 | } 14 | 15 | hotspot$1:::class-unloaded { 16 | printf("unloaded %s\n", copyinstr(arg0, arg1)); 17 | } 18 | -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/samples/jthread.d: -------------------------------------------------------------------------------- 1 | #!/usr/sbin/dtrace -s 2 | 3 | btrace$1:::event 4 | / 5 | copyinstr(arg0) == "jthreadstart" && 6 | arg1 != NULL 7 | / 8 | { 9 | printf("From DTrace: Java Thread '%s' started\n", copyinstr(arg1)); 10 | } 11 | -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/samples/jurls.d: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * This D-script maintains a aggregation whenever 4 | * btrace:::event probe is raised with "java-url-open" 5 | * as first argument. 6 | */ 7 | btrace$target:::event 8 | / copyinstr(arg0) == "java-url-open" / 9 | { 10 | @[copyinstr(arg1)] = count(); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /btrace-dist/src/main/resources/samples/syscalls.d: -------------------------------------------------------------------------------- 1 | syscall:::entry 2 | / pid == $target / 3 | { 4 | @[probefunc] = count(); 5 | } 6 | -------------------------------------------------------------------------------- /btrace-dtrace/src/main/native/btraced.d: -------------------------------------------------------------------------------- 1 | provider btrace { 2 | probe event(char* c1, char* c2, int i1, int i2, int* i3); 3 | }; 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Aggregate.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.util.Map; 4 | 5 | @SuppressWarnings("SameReturnValue") 6 | public class Aggregate { 7 | public Map asMap() { 8 | return null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Aggregation.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.util.Map; 4 | 5 | @SuppressWarnings("SameReturnValue") 6 | public class Aggregation { 7 | public String getName() { 8 | return null; 9 | } 10 | 11 | public Map asMap() { 12 | return null; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/AggregationRecord.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | @SuppressWarnings("SameReturnValue") 4 | public class AggregationRecord { 5 | public Tuple getTuple() { 6 | return null; 7 | } 8 | 9 | public AggregationValue getValue() { 10 | return null; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/AggregationValue.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class AggregationValue {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ConsumerAdapter.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public abstract class ConsumerAdapter implements ConsumerListener { 4 | public abstract void consumerStarted(ConsumerEvent ce); 5 | 6 | public abstract void consumerStopped(ConsumerEvent ce); 7 | 8 | public abstract void dataReceived(DataEvent de); 9 | 10 | public abstract void dataDropped(DropEvent de); 11 | 12 | public void errorEncountered(ErrorEvent ee) throws ConsumerException {} 13 | } 14 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ConsumerEvent.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | @SuppressWarnings("SameReturnValue") 4 | public class ConsumerEvent { 5 | public Consumer getSource() { 6 | return null; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ConsumerException.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class ConsumerException extends Exception {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ConsumerListener.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public interface ConsumerListener {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/DTraceException.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class DTraceException extends Exception { 4 | public DTraceException() {} 5 | 6 | public DTraceException(String message) { 7 | super(message); 8 | } 9 | 10 | public DTraceException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | 14 | public DTraceException(Throwable cause) { 15 | super(cause); 16 | } 17 | 18 | public DTraceException( 19 | String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 20 | super(message, cause, enableSuppression, writableStackTrace); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/DataEvent.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.util.EventObject; 4 | 5 | @SuppressWarnings("SameReturnValue") 6 | public class DataEvent extends EventObject { 7 | public DataEvent(Object source) { 8 | super(source); 9 | } 10 | 11 | public ProbeData getProbeData() { 12 | return null; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Drop.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | @SuppressWarnings("SameReturnValue") 4 | public class Drop { 5 | public String getDefaultMessage() { 6 | return null; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/DropEvent.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.util.EventObject; 4 | 5 | @SuppressWarnings("SameReturnValue") 6 | public class DropEvent extends EventObject { 7 | public DropEvent(Object source) { 8 | super(source); 9 | } 10 | 11 | public Drop getDrop() { 12 | return null; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ErrorEvent.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class ErrorEvent {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public interface ExceptionHandler { 4 | void handleException(Throwable t); 5 | } 6 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/LocalConsumer.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.io.File; 4 | 5 | public class LocalConsumer implements Consumer { 6 | @Override 7 | public void open() {} 8 | 9 | @Override 10 | public void setOption(String argref, String s) {} 11 | 12 | @Override 13 | public void grabProcess(int pid) {} 14 | 15 | @Override 16 | public void close() {} 17 | 18 | @SuppressWarnings("RedundantThrows") 19 | @Override 20 | public Aggregate getAggregate() throws DTraceException { 21 | return null; 22 | } 23 | 24 | @Override 25 | public void addConsumerListener(ConsumerListener consumerListener) {} 26 | 27 | @Override 28 | public void go(ExceptionHandler exceptionHandler) {} 29 | 30 | @Override 31 | public void enable() {} 32 | 33 | @Override 34 | public void compile(File program, String[] args) {} 35 | 36 | @Override 37 | public void compile(String program, String[] args) {} 38 | } 39 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Option.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class Option { 4 | public static String argref; 5 | public static String defaultargs; 6 | public static String empty; 7 | public static String quiet; 8 | public static String unodefs; 9 | public static String zdefs; 10 | } 11 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Probe.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class Probe {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ProbeData.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | import java.util.List; 4 | 5 | @SuppressWarnings("SameReturnValue") 6 | public class ProbeData { 7 | public List getRecords() { 8 | return null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/ProbeDescription.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class ProbeDescription {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Program.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class Program {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Record.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class Record {} 4 | -------------------------------------------------------------------------------- /btrace-dtrace/src/mock/java/org/opensolaris/os/dtrace/Tuple.java: -------------------------------------------------------------------------------- 1 | package org.opensolaris.os.dtrace; 2 | 3 | public class Tuple {} 4 | -------------------------------------------------------------------------------- /btrace-instr/src/main/java/org/openjdk/btrace/instr/BTraceMethodVisitor.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import org.objectweb.asm.Label; 4 | import org.objectweb.asm.MethodVisitor; 5 | import org.objectweb.asm.Opcodes; 6 | import org.objectweb.asm.Type; 7 | 8 | public class BTraceMethodVisitor extends MethodVisitor { 9 | private final MethodInstrumentorHelper mHelper; 10 | 11 | public BTraceMethodVisitor(MethodVisitor mv, MethodInstrumentorHelper mHelper) { 12 | super(Opcodes.ASM9, mv); 13 | this.mHelper = mHelper; 14 | } 15 | 16 | public final int storeAsNew() { 17 | return mHelper.storeAsNew(); 18 | } 19 | 20 | public final int storeNewLocal(Type t) { 21 | int index = mHelper.newVar(t); 22 | super.visitVarInsn(t.getOpcode(Opcodes.ISTORE), index); 23 | return index; 24 | } 25 | 26 | public final void addTryCatchHandler(Label start, Label handler) { 27 | mHelper.addTryCatchHandler(start, handler); 28 | } 29 | 30 | public void insertFrameReplaceStack(Label l, Type... stack) { 31 | mHelper.insertFrameReplaceStack(l, stack); 32 | } 33 | 34 | public void insertFrameAppendStack(Label l, Type... stack) { 35 | mHelper.insertFrameAppendStack(l, stack); 36 | } 37 | 38 | public void insertFrameSameStack(Label l) { 39 | mHelper.insertFrameSameStack(l); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /btrace-instr/src/main/java/org/openjdk/btrace/instr/BailoutException.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | /** 4 | * Dummy, non-stack-collecting runtime exception. It is used for execution control in ClassReader 5 | * instances in order to avoid processing the complete class file when the relevant info is 6 | * available right at the beginning of parsing. 7 | */ 8 | final class BailoutException extends RuntimeException { 9 | /** Shared instance to optimize the cost of throwing */ 10 | static final BailoutException INSTANCE = new BailoutException(); 11 | 12 | private BailoutException() {} 13 | 14 | @Override 15 | public synchronized Throwable fillInStackTrace() { 16 | // we don't need the stack here 17 | return this; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /btrace-instr/src/main/java/org/openjdk/btrace/instr/InstrPackGenerator.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import java.io.ByteArrayOutputStream; 4 | import java.io.DataOutputStream; 5 | import java.io.IOException; 6 | import org.openjdk.btrace.compiler.PackGenerator; 7 | import org.openjdk.btrace.core.SharedSettings; 8 | 9 | public final class InstrPackGenerator implements PackGenerator { 10 | @Override 11 | public byte[] generateProbePack(byte[] classData) throws IOException { 12 | BTraceProbeNode bpn = 13 | (BTraceProbeNode) new BTraceProbeFactory(SharedSettings.GLOBAL).createProbe(classData); 14 | // force bytecode verification before creating the persisted representation 15 | bpn.checkVerified(); 16 | 17 | ByteArrayOutputStream bos = new ByteArrayOutputStream(); 18 | try (DataOutputStream dos = new DataOutputStream(bos)) { 19 | BTraceProbePersisted bpp = BTraceProbePersisted.from(bpn); 20 | if (!bpp.isVerified()) { 21 | throw new Error(); 22 | } 23 | bpp.write(dos); 24 | } 25 | 26 | return bos.toByteArray(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /btrace-instr/src/main/java/org/openjdk/btrace/instr/MethodInstrumentorHelper.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import org.objectweb.asm.Label; 4 | import org.objectweb.asm.Type; 5 | 6 | public interface MethodInstrumentorHelper { 7 | void insertFrameReplaceStack(Label l, Type... stack); 8 | 9 | void insertFrameAppendStack(Label l, Type... stack); 10 | 11 | void insertFrameSameStack(Label l); 12 | 13 | void addTryCatchHandler(Label start, Label handler); 14 | 15 | int newVar(Type t); 16 | 17 | int storeAsNew(); 18 | 19 | interface Accessor { 20 | MethodInstrumentorHelper methodHelper(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /btrace-instr/src/main/java/org/openjdk/btrace/instr/ProbeDump.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import java.io.FileInputStream; 4 | import java.nio.file.FileSystem; 5 | import java.nio.file.FileSystems; 6 | import java.nio.file.Files; 7 | import java.nio.file.Path; 8 | import org.openjdk.btrace.core.SharedSettings; 9 | 10 | public class ProbeDump { 11 | public static void main(String[] args) throws Exception { 12 | String path = args[0]; 13 | 14 | BTraceProbeFactory bpf = new BTraceProbeFactory(SharedSettings.GLOBAL); 15 | 16 | BTraceProbe bp = bpf.createProbe(new FileInputStream(path)); 17 | 18 | FileSystem fs = FileSystems.getDefault(); 19 | Path p = fs.getPath(args[1]); 20 | Files.write( 21 | p.resolve(bp.getClassName().replace(".", "_") + "_full.class"), bp.getFullBytecode()); 22 | Files.write( 23 | p.resolve(bp.getClassName().replace(".", "_") + "_dh.class"), bp.getDataHolderBytecode()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /btrace-instr/src/main/resources/META-INF/services/org.openjdk.btrace.compiler.PackGenerator: -------------------------------------------------------------------------------- 1 | org.openjdk.btrace.instr.InstrPackGenerator 2 | -------------------------------------------------------------------------------- /btrace-instr/src/main/resources/org/openjdk/btrace/instr/jaxb.index: -------------------------------------------------------------------------------- 1 | ProbeDescriptor 2 | OnProbe 3 | OnMethod 4 | Location -------------------------------------------------------------------------------- /btrace-instr/src/test/btrace/InterestingVarsTest.java: -------------------------------------------------------------------------------- 1 | package traces.issues; 2 | 3 | import org.openjdk.btrace.core.annotations.*; 4 | import org.openjdk.btrace.core.BTraceUtils; 5 | 6 | @BTrace 7 | class InterestingVarsTest { 8 | @OnMethod(clazz = "/.*\\.InterestingVarsClass/", method = "initAndStartApp") 9 | void entry(String a, String b, String c) { 10 | BTraceUtils.println(a); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /btrace-instr/src/test/btrace/issues/BTRACE256.java: -------------------------------------------------------------------------------- 1 | package traces.issues; 2 | 3 | import org.openjdk.btrace.core.BTraceUtils; 4 | import org.openjdk.btrace.core.Profiler; 5 | import org.openjdk.btrace.core.annotations.*; 6 | import org.openjdk.btrace.statsd.Statsd; 7 | 8 | @BTrace 9 | class BTRACE256 { 10 | @Property Profiler swingProfiler = BTraceUtils.Profiling.newProfiler(); 11 | 12 | @Injected(factoryMethod = "getInstance") 13 | private Statsd sd; 14 | 15 | @OnMethod(clazz = "/.*\\.BTRACE256/", method = "doStuff") 16 | void entry(@ProbeMethodName(fqn = true) String probeMethod) { 17 | BTraceUtils.Profiling.recordEntry(swingProfiler, probeMethod); 18 | } 19 | 20 | @OnMethod( 21 | clazz = "/.*\\.BTRACE256/", 22 | method = "doStuff", 23 | location = @Location(value = Kind.RETURN)) 24 | void exit(@ProbeMethodName(fqn = true) String probeMethod, @Duration long duration) { 25 | BTraceUtils.Profiling.recordExit(swingProfiler, probeMethod, duration); 26 | sd.increment("my.metric.b", "regular,distribution:gaussian"); 27 | } 28 | 29 | @OnTimer(5000) 30 | void timer() { 31 | BTraceUtils.Profiling.printSnapshot("AM performance profile", swingProfiler); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /btrace-instr/src/test/btrace/issues/BTRACE_333.java: -------------------------------------------------------------------------------- 1 | package traces.issues; 2 | 3 | import static org.openjdk.btrace.core.BTraceUtils.*; 4 | 5 | import org.openjdk.btrace.core.annotations.*; 6 | 7 | @BTrace(unsafe = true) 8 | public class BTRACE_333 { 9 | @OnMethod( 10 | clazz = "com.bt.pjg.game.backpack.BackpackExtensionTest", 11 | method = "/.*/", 12 | location = @Location(value = Kind.SYNC_ENTRY)) 13 | public static void m3() { 14 | print("entered SYNC"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/org/openjdk/btrace/instr/ClassInfoTest.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import org.junit.jupiter.api.BeforeAll; 4 | import org.junit.jupiter.api.Test; 5 | import org.openjdk.btrace.core.BTraceRuntime; 6 | import org.openjdk.btrace.runtime.BTraceRuntimeAccess; 7 | 8 | import java.lang.reflect.Method; 9 | 10 | import static org.junit.jupiter.api.Assertions.*; 11 | 12 | class ClassInfoTest { 13 | @BeforeAll 14 | static void setupAll() throws Throwable { 15 | Method m = BTraceRuntimeAccess.class.getDeclaredMethod("registerRuntimeAccessor"); 16 | m.setAccessible(true); 17 | m.invoke(null); 18 | } 19 | 20 | @Test 21 | void isBootstrap() { 22 | assertTrue(ClassInfo.isBootstrap(String.class.getName())); 23 | assertFalse(ClassInfo.isBootstrap(ClassInfoTest.class.getName())); 24 | } 25 | } -------------------------------------------------------------------------------- /btrace-instr/src/test/java/org/openjdk/btrace/instr/ExtensionBootstrapTest.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import static org.junit.jupiter.api.Assertions.*; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | public class ExtensionBootstrapTest { 8 | 9 | @Test 10 | public void bootstrapInvoke() {} 11 | } 12 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/org/openjdk/btrace/instr/ProbeLoaderNewTest.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import java.io.InputStream; 4 | import org.junit.jupiter.api.Assertions; 5 | import org.junit.jupiter.api.BeforeAll; 6 | import org.junit.jupiter.api.BeforeEach; 7 | import org.junit.jupiter.api.Test; 8 | import org.openjdk.btrace.core.SharedSettings; 9 | 10 | public class ProbeLoaderNewTest { 11 | private static BTraceProbeFactory BPF; 12 | private InputStream classStream; 13 | private byte[] defData; 14 | 15 | @BeforeAll 16 | public static void setupClass() throws Exception { 17 | BPF = new BTraceProbeFactory(SharedSettings.GLOBAL); 18 | } 19 | 20 | @BeforeEach 21 | public void setup() throws Exception { 22 | classStream = 23 | ProbeLoaderNewTest.class.getResourceAsStream("/resources/classdata/OnMethodTest.btrc"); 24 | } 25 | 26 | @Test 27 | public void testPersistedProbeLoad() throws Exception { 28 | BTraceProbe bp; 29 | long t1 = System.nanoTime(); 30 | try { 31 | bp = BPF.createProbe(classStream); 32 | } finally { 33 | System.err.println("# Creating probe took: " + (System.nanoTime() - t1) + "ns"); 34 | } 35 | Assertions.assertNotNull(bp); 36 | Assertions.assertNotNull(bp.getClassName()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/org/openjdk/btrace/instr/ProbeLoaderOldTest.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.instr; 2 | 3 | import java.io.InputStream; 4 | import org.junit.jupiter.api.Assertions; 5 | import org.junit.jupiter.api.BeforeAll; 6 | import org.junit.jupiter.api.BeforeEach; 7 | import org.junit.jupiter.api.Test; 8 | import org.openjdk.btrace.core.SharedSettings; 9 | 10 | public class ProbeLoaderOldTest { 11 | private static BTraceProbeFactory BPF; 12 | private InputStream classStream; 13 | private byte[] defData; 14 | 15 | @BeforeAll 16 | public static void setupClass() throws Exception { 17 | BPF = new BTraceProbeFactory(SharedSettings.GLOBAL); 18 | } 19 | 20 | @BeforeEach 21 | public void setup() throws Exception { 22 | classStream = 23 | ProbeLoaderOldTest.class.getResourceAsStream("/resources/classdata/TraceScript.clazz"); 24 | } 25 | 26 | @Test 27 | public void testPersistedProbeLoad() throws Exception { 28 | BTraceProbe bp; 29 | long t1 = System.nanoTime(); 30 | try { 31 | bp = BPF.createProbe(classStream); 32 | } finally { 33 | System.err.println("# Creating probe took: " + (System.nanoTime() - t1) + "ns"); 34 | } 35 | Assertions.assertNotNull(bp); 36 | Assertions.assertNotNull(bp.getClassName()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/resources/InterestingVarsClass.java: -------------------------------------------------------------------------------- 1 | package resources; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collection; 5 | import java.util.Iterator; 6 | 7 | public class InterestingVarsClass { 8 | public static class Token { 9 | public boolean getKind() { 10 | return true; 11 | } 12 | } 13 | 14 | public static void initAndStartApp(String a, String b, String c) { 15 | Collection> tokens = tokens(); 16 | for (Token token : tokens) { 17 | System.out.println(token); 18 | } 19 | 20 | StringBuilder nextVar = new StringBuilder(a); 21 | nextVar.append(b); 22 | 23 | Iterator> iter = tokens.iterator(); 24 | while (iter.hasNext()) { 25 | Token token = iter.next(); 26 | if (token.getKind()) { 27 | iter.remove(); 28 | } 29 | } 30 | } 31 | 32 | private static Collection> tokens() { 33 | return Arrays.asList(new Token()); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/resources/issues/BTRACE256.java: -------------------------------------------------------------------------------- 1 | package resources.issues; 2 | 3 | public class BTRACE256 { 4 | public java.util.Random r = new java.util.Random(System.currentTimeMillis()); 5 | 6 | public static void main(String[] args) throws Exception { 7 | 8 | Thread t = 9 | new Thread( 10 | new Runnable() { 11 | @Override 12 | public void run() { 13 | BTRACE256 test = new BTRACE256(); 14 | try { 15 | while (true) { 16 | test.doStuff(); 17 | } 18 | } catch (Exception e) { 19 | } 20 | } 21 | }); 22 | 23 | t.start(); 24 | t.join(); 25 | } 26 | 27 | public void doStuff() throws Exception { 28 | Thread.sleep(r.nextInt(2000)); 29 | System.out.print("."); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /btrace-instr/src/test/java/resources/issues/BTRACE87.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this template, choose Tools | Templates 3 | * and open the template in the editor. 4 | */ 5 | package resources.issues; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * @author Jaroslav Bachorik 12 | */ 13 | public class BTRACE87 { 14 | private void containerMethod() { 15 | List a = new ArrayList(); 16 | a.clear(); 17 | a.add("sample"); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/ExportTest: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 1 4 | LLOAD 2 5 | ALOAD 4 6 | ALOAD 5 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ExportTest$testArgs(Ljava/lang/String;J[Ljava/lang/String;[I)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/ExportTest" 12 | ] 13 | FRAME SAME 14 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/OnProbeTest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/OnProbeTest -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/OnTimerTest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/OnTimerTest -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/TLSTest: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 1 4 | LLOAD 2 5 | ALOAD 4 6 | ALOAD 5 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$TLSTest$testArgs(Ljava/lang/String;J[Ljava/lang/String;[I)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/TLSTest" 12 | ] 13 | FRAME SAME 14 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE189: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE189 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE22: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 1 3 | INVOKESTATIC java/lang/System.nanoTime ()J 4 | LSTORE 3 5 | DSTORE 5 6 | DLOAD 5 7 | DLOAD 5 8 | INVOKESTATIC java/lang/System.nanoTime ()J 9 | LLOAD 3 10 | LSUB 11 | LSTORE 1 12 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 13 | IFNE L3 14 | ALOAD 0 15 | LLOAD 1 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$BTRACE22$tracker(Ljava/lang/Object;J)V [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/BTRACE22" 21 | ] 22 | L3 23 | FRAME FULL [resources/issues/BTRACE22 J J D] [D] 24 | L4 25 | LOCALVARIABLE this Lresources/issues/BTRACE22; L0 L4 0 26 | LOCALVARIABLE d D L1 L4 5 27 | MAXSTACK = 6 28 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE53: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 1 3 | INVOKESTATIC java/lang/System.nanoTime ()J 4 | LSTORE 3 5 | INVOKESTATIC java/lang/System.nanoTime ()J 6 | LLOAD 3 7 | LSUB 8 | LSTORE 1 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L2 11 | LLOAD 1 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$BTRACE53$onInit(J)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/BTRACE53" 17 | ] 18 | L2 19 | FRAME FULL [resources/DerivedClass J J] [] 20 | L3 21 | LOCALVARIABLE this Lresources/DerivedClass; L0 L3 0 22 | MAXSTACK = 4 23 | MAXLOCALS = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE_333: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/BTRACE_333 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/issues/InterestingVarsTest: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | ALOAD 2 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$InterestingVarsTest$entry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/InterestingVarsTest" 11 | ] 12 | FRAME SAME -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/AnytypeArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ICONST_4 5 | ANEWARRAY java/lang/Object 6 | DUP 7 | ICONST_0 8 | ALOAD 1 9 | AASTORE 10 | DUP 11 | ICONST_1 12 | LLOAD 2 13 | INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long; 14 | AASTORE 15 | DUP 16 | ICONST_2 17 | ALOAD 4 18 | AASTORE 19 | DUP 20 | ICONST_3 21 | ALOAD 5 22 | AASTORE 23 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$AnytypeArgs$args(Ljava/lang/Object;[Ljava/lang/Object;)V [ 24 | // handle kind 0x6 : INVOKESTATIC 25 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 26 | // arguments: 27 | "org/openjdk/btrace/runtime/auxiliary/AnytypeArgs" 28 | ] 29 | FRAME SAME 30 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/AnytypeArgsNoSelf: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ICONST_4 4 | ANEWARRAY java/lang/Object 5 | DUP 6 | ICONST_0 7 | ALOAD 1 8 | AASTORE 9 | DUP 10 | ICONST_1 11 | LLOAD 2 12 | INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long; 13 | AASTORE 14 | DUP 15 | ICONST_2 16 | ALOAD 4 17 | AASTORE 18 | DUP 19 | ICONST_3 20 | ALOAD 5 21 | AASTORE 22 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$AnytypeArgsNoSelf$argsNoSelf([Ljava/lang/Object;)V [ 23 | // handle kind 0x6 : INVOKESTATIC 24 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 25 | // arguments: 26 | "org/openjdk/btrace/runtime/auxiliary/AnytypeArgsNoSelf" 27 | ] 28 | FRAME SAME 29 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/Args: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | LLOAD 2 6 | ALOAD 4 7 | ALOAD 5 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Args$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/Args" 13 | ] 14 | FRAME SAME 15 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDuration: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 6 3 | INVOKESTATIC java/lang/System.nanoTime ()J 4 | LSTORE 8 5 | INVOKESTATIC java/lang/System.nanoTime ()J 6 | LLOAD 8 7 | LSUB 8 | LSTORE 6 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L1 11 | DUP2 12 | LSTORE 10 13 | ALOAD 0 14 | LLOAD 10 15 | LLOAD 6 16 | ALOAD 1 17 | LLOAD 2 18 | ALOAD 4 19 | ALOAD 5 20 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsDuration$args(Ljava/lang/Object;JJLjava/lang/String;J[Ljava/lang/String;[I)V [ 21 | // handle kind 0x6 : INVOKESTATIC 22 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 23 | // arguments: 24 | "org/openjdk/btrace/runtime/auxiliary/ArgsDuration" 25 | ] 26 | L1 27 | FRAME FULL [resources/OnMethodTest java/lang/String J [Ljava/lang/String; [I J J] [J] 28 | L2 29 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 30 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 31 | LOCALVARIABLE b J L0 L2 2 32 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 33 | LOCALVARIABLE d [I L0 L2 5 34 | MAXSTACK = 12 35 | MAXLOCALS = 12 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationBoxed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationBoxed -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationBoxedErr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationBoxedErr -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationConstructor: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 2 3 | INVOKESTATIC java/lang/System.nanoTime ()J 4 | LSTORE 4 5 | INVOKESTATIC java/lang/System.nanoTime ()J 6 | LLOAD 4 7 | LSUB 8 | LSTORE 2 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L3 11 | ALOAD 0 12 | LLOAD 2 13 | ALOAD 1 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsDurationConstructor$args(Ljava/lang/Object;JLjava/lang/String;)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/ArgsDurationConstructor" 19 | ] 20 | L3 21 | FRAME FULL [resources/OnMethodTest java/lang/String J J] [] 22 | L4 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L4 0 24 | LOCALVARIABLE a Ljava/lang/String; L0 L4 1 25 | MAXSTACK = 4 26 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationErr: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L1 L1 java/lang/Throwable 2 | LCONST_0 3 | LSTORE 6 4 | INVOKESTATIC java/lang/System.nanoTime ()J 5 | LSTORE 8 6 | FRAME FULL [resources/OnMethodTest java/lang/String J [Ljava/lang/String; [I J J] [java/lang/Throwable] 7 | INVOKESTATIC java/lang/System.nanoTime ()J 8 | LLOAD 8 9 | LSUB 10 | LSTORE 6 11 | DUP 12 | ASTORE 10 13 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 14 | IFNE L2 15 | ALOAD 0 16 | LLOAD 6 17 | ALOAD 10 18 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsDurationErr$args(Ljava/lang/Object;JLjava/lang/Throwable;)V [ 19 | // handle kind 0x6 : INVOKESTATIC 20 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 21 | // arguments: 22 | "org/openjdk/btrace/runtime/auxiliary/ArgsDurationErr" 23 | ] 24 | L2 25 | FRAME FULL [resources/OnMethodTest java/lang/String J [Ljava/lang/String; [I J J java/lang/Throwable] [java/lang/Throwable] 26 | ATHROW 27 | MAXSTACK = 5 28 | MAXLOCALS = 11 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsDurationSampled: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 6 3 | ICONST_1 4 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hitTimed (I)J 5 | DUP2 6 | LSTORE 8 7 | L2I 8 | ISTORE 10 9 | ILOAD 10 10 | IFEQ L1 11 | ICONST_1 12 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.getEndTs (I)J 13 | LLOAD 8 14 | LSUB 15 | LSTORE 6 16 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 17 | IFNE L1 18 | DUP2 19 | LSTORE 11 20 | ALOAD 0 21 | LLOAD 11 22 | LLOAD 6 23 | ALOAD 1 24 | LLOAD 2 25 | ALOAD 4 26 | ALOAD 5 27 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsDurationSampled$args(Ljava/lang/Object;JJLjava/lang/String;J[Ljava/lang/String;[I)V [ 28 | // handle kind 0x6 : INVOKESTATIC 29 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 30 | // arguments: 31 | "org/openjdk/btrace/runtime/auxiliary/ArgsDurationSampled" 32 | ] 33 | L1 34 | FRAME FULL [resources/OnMethodTest java/lang/String J [Ljava/lang/String; [I J J I] [J] 35 | L2 36 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 37 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 38 | LOCALVARIABLE b J L0 L2 2 39 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 40 | LOCALVARIABLE d [I L0 L2 5 41 | MAXSTACK = 12 42 | MAXLOCALS = 13 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsNoSelf: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | LDC "public long resources.OnMethodTest#args(java.lang.String, long, java.lang.String[], int[])" 4 | ALOAD 1 5 | LLOAD 2 6 | ALOAD 4 7 | ALOAD 5 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsNoSelf$argsNoSelf(Ljava/lang/String;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ArgsNoSelf" 13 | ] 14 | FRAME SAME 15 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturn: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | DUP2 4 | LSTORE 6 5 | ALOAD 0 6 | LLOAD 6 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturn$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturn" 16 | ] 17 | L1 18 | FRAME SAME1 J 19 | L2 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 21 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 22 | LOCALVARIABLE b J L0 L2 2 23 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 24 | LOCALVARIABLE d [I L0 L2 5 25 | MAXSTACK = 10 26 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnAugmented: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | LSTORE 6 4 | ALOAD 0 5 | ALOAD 1 6 | LLOAD 2 7 | ALOAD 4 8 | ALOAD 5 9 | LLOAD 6 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnAugmented$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[IJ)J [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented" 15 | ] 16 | L1 17 | FRAME SAME1 J 18 | L2 19 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 20 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 21 | LOCALVARIABLE b J L0 L2 2 22 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 23 | LOCALVARIABLE d [I L0 L2 5 24 | MAXSTACK = 8 25 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnAugmented1: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | LSTORE 6 4 | ALOAD 0 5 | LLOAD 6 6 | ALOAD 1 7 | LLOAD 2 8 | ALOAD 4 9 | ALOAD 5 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnAugmented1$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)J [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented1" 15 | ] 16 | L1 17 | FRAME SAME1 J 18 | L2 19 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 20 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 21 | LOCALVARIABLE b J L0 L2 2 22 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 23 | LOCALVARIABLE d [I L0 L2 5 24 | MAXSTACK = 8 25 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnBoxed: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | DUP2 4 | LSTORE 6 5 | ALOAD 0 6 | LLOAD 6 7 | INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long; 8 | ALOAD 1 9 | LLOAD 2 10 | ALOAD 4 11 | ALOAD 5 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnBoxed$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnBoxed" 17 | ] 18 | L1 19 | FRAME SAME1 J 20 | L2 21 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 22 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 23 | LOCALVARIABLE b J L0 L2 2 24 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 25 | LOCALVARIABLE d [I L0 L2 5 26 | MAXSTACK = 9 27 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnSampled: -------------------------------------------------------------------------------- 1 | ICONST_1 2 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hit (I)Z 3 | ISTORE 6 4 | ILOAD 6 5 | IFEQ L1 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L1 8 | DUP2 9 | LSTORE 7 10 | ALOAD 0 11 | LLOAD 7 12 | ALOAD 1 13 | LLOAD 2 14 | ALOAD 4 15 | ALOAD 5 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnSampled$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)V [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnSampled" 21 | ] 22 | L1 23 | FRAME FULL [resources/OnMethodTest java/lang/String J [Ljava/lang/String; [I I] [J] 24 | L2 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 27 | LOCALVARIABLE b J L0 L2 2 28 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 29 | LOCALVARIABLE d [I L0 L2 5 30 | MAXSTACK = 10 31 | MAXLOCALS = 9 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnTypeMatch: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | DUP2 4 | LSTORE 6 5 | ALOAD 0 6 | LLOAD 6 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnTypeMatch$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnTypeMatch" 16 | ] 17 | L1 18 | FRAME SAME1 J 19 | L2 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 21 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 22 | LOCALVARIABLE b J L0 L2 2 23 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 24 | LOCALVARIABLE d [I L0 L2 5 25 | MAXSTACK = 10 26 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnTypeNoMatch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnTypeNoMatch -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsReturnVoid: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | ACONST_NULL 4 | ASTORE 1 5 | ALOAD 0 6 | ALOAD 1 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnVoid$args(Ljava/lang/Object;Ljava/lang/Void;)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnVoid" 12 | ] 13 | L1 14 | FRAME SAME 15 | L2 16 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 17 | MAXSTACK = 2 18 | MAXLOCALS = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsSampled: -------------------------------------------------------------------------------- 1 | ICONST_1 2 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hit (I)Z 3 | ISTORE 6 4 | ILOAD 6 5 | IFEQ L0 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L0 8 | ALOAD 0 9 | ALOAD 1 10 | LLOAD 2 11 | ALOAD 4 12 | ALOAD 5 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsSampled$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArgsSampled" 18 | ] 19 | FRAME APPEND [I] 20 | MAXSTACK = 6 21 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsSampledAdaptive: -------------------------------------------------------------------------------- 1 | ICONST_1 2 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hitAdaptive (I)Z 3 | ISTORE 6 4 | ILOAD 6 5 | IFEQ L0 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L0 8 | ALOAD 0 9 | ALOAD 1 10 | LLOAD 2 11 | ALOAD 4 12 | ALOAD 5 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsSampledAdaptive$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArgsSampledAdaptive" 18 | ] 19 | FRAME APPEND [I] 20 | ILOAD 6 21 | IFEQ L1 22 | ICONST_1 23 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.updateEndTs (I)V 24 | L1 25 | FRAME SAME1 J 26 | L2 27 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 28 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 29 | LOCALVARIABLE b J L0 L2 2 30 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 31 | LOCALVARIABLE d [I L0 L2 5 32 | MAXSTACK = 6 33 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsShared: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | LLOAD 2 6 | ALOAD 4 7 | ALOAD 5 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsShared$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ArgsShared" 13 | ] 14 | FRAME SAME 15 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsSigMatch: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsSigMatch$m3(Ljava/lang/Object;Ljava/util/ArrayList;)V [ 6 | // handle kind 0x6 : INVOKESTATIC 7 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 8 | // arguments: 9 | "org/openjdk/btrace/runtime/auxiliary/ArgsSigMatch" 10 | ] 11 | FRAME SAME 12 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 13 | IFNE L1 14 | ALOAD 0 15 | ALOAD 1 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsSigMatch$m1(Ljava/lang/Object;Ljava/util/List;)V [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/ArgsSigMatch" 21 | ] 22 | L1 23 | LINENUMBER 173 L1 24 | FRAME SAME 25 | L2 26 | LOCALVARIABLE this Lresources/OnMethodTest; L1 L2 0 27 | LOCALVARIABLE l Ljava/util/ArrayList; L1 L2 1 28 | MAXSTACK = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArgsUnsafe: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | LLOAD 2 6 | ALOAD 4 7 | ALOAD 5 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsUnsafe$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ArgsUnsafe" 13 | ] 14 | FRAME SAME 15 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArrayGetAfter: -------------------------------------------------------------------------------- 1 | DUP2 2 | ISTORE 3 3 | ASTORE 4 4 | DUP 5 | ISTORE 5 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 0 9 | ILOAD 5 10 | ALOAD 4 11 | ILOAD 3 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetAfter$args(Ljava/lang/Object;I[II)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetAfter" 17 | ] 18 | FRAME FULL [resources/OnMethodTest I [I I [I I] [I] 19 | ISTORE 6 20 | L3 21 | LINENUMBER 97 L3 22 | L4 23 | LINENUMBER 98 L4 24 | L5 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 26 | LOCALVARIABLE a I L0 L5 1 27 | LOCALVARIABLE arr [I L1 L5 2 28 | LOCALVARIABLE b I L3 L5 6 29 | MAXSTACK = 5 30 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArrayGetAfterAny: -------------------------------------------------------------------------------- 1 | DUP2 2 | ISTORE 3 3 | ASTORE 4 4 | DUP 5 | ISTORE 5 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 0 9 | ILOAD 5 10 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 11 | ALOAD 4 12 | ILOAD 3 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetAfterAny$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetAfterAny" 18 | ] 19 | FRAME FULL [resources/OnMethodTest I [I I [I I] [I] 20 | ISTORE 6 21 | L3 22 | LINENUMBER 97 L3 23 | L4 24 | LINENUMBER 98 L4 25 | L5 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 27 | LOCALVARIABLE a I L0 L5 1 28 | LOCALVARIABLE arr [I L1 L5 2 29 | LOCALVARIABLE b I L3 L5 6 30 | MAXSTACK = 5 31 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArrayGetBefore: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L2 5 | ALOAD 0 6 | ALOAD 4 7 | ILOAD 3 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetBefore$args(Ljava/lang/Object;[II)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetBefore" 13 | ] 14 | FRAME FULL [resources/OnMethodTest I [I I [I] [[I I] 15 | IALOAD 16 | ISTORE 5 17 | L3 18 | LINENUMBER 97 L3 19 | L4 20 | LINENUMBER 98 L4 21 | L5 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 23 | LOCALVARIABLE a I L0 L5 1 24 | LOCALVARIABLE arr [I L1 L5 2 25 | LOCALVARIABLE b I L3 L5 5 26 | MAXSTACK = 5 27 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArrayGetBeforeAny: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L2 5 | ALOAD 0 6 | ALOAD 4 7 | ILOAD 3 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetBeforeAny$args(Ljava/lang/Object;Ljava/lang/Object;I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetBeforeAny" 13 | ] 14 | FRAME FULL [resources/OnMethodTest I [I I [I] [[I I] 15 | IALOAD 16 | ISTORE 5 17 | L3 18 | LINENUMBER 97 L3 19 | L4 20 | LINENUMBER 98 L4 21 | L5 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 23 | LOCALVARIABLE a I L0 L5 1 24 | LOCALVARIABLE arr [I L1 L5 2 25 | LOCALVARIABLE b I L3 L5 5 26 | MAXSTACK = 5 27 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArraySetAfter: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | ALOAD 6 10 | ILOAD 5 11 | ILOAD 4 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetAfter$args(Ljava/lang/Object;[III)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/ArraySetAfter" 17 | ] 18 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [] 19 | MAXSTACK = 4 20 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArraySetAfterAny: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | ALOAD 6 10 | ILOAD 5 11 | ILOAD 4 12 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetAfterAny$args(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArraySetAfterAny" 18 | ] 19 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [] 20 | MAXSTACK = 4 21 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArraySetBefore: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | ALOAD 6 10 | ILOAD 5 11 | ILOAD 4 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetBefore$args(Ljava/lang/Object;[III)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/ArraySetBefore" 17 | ] 18 | L3 19 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [[I I I] 20 | L4 21 | LINENUMBER 98 L4 22 | L5 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 24 | LOCALVARIABLE a I L0 L5 1 25 | LOCALVARIABLE arr [I L1 L5 2 26 | LOCALVARIABLE b I L2 L5 3 27 | MAXSTACK = 7 28 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ArraySetBeforeAny: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | ALOAD 6 10 | ILOAD 5 11 | ILOAD 4 12 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetBeforeAny$args(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArraySetBeforeAny" 18 | ] 19 | L3 20 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [[I I I] 21 | L4 22 | LINENUMBER 98 L4 23 | L5 24 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 25 | LOCALVARIABLE a I L0 L5 1 26 | LOCALVARIABLE arr [I L1 L5 2 27 | LOCALVARIABLE b I L2 L5 3 28 | MAXSTACK = 7 29 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/Catch: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L2 4 | ALOAD 0 5 | ALOAD 1 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Catch$args(Ljava/lang/Object;Ljava/io/IOException;)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/Catch" 11 | ] 12 | FRAME FULL [resources/OnMethodTest java/io/IOException] [java/io/IOException] 13 | ASTORE 2 14 | L3 15 | LINENUMBER 85 L3 16 | ALOAD 2 17 | L4 18 | LINENUMBER 87 L4 19 | L5 20 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 2 21 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 22 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/CheckcastAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L2 4 | ALOAD 0 5 | LDC "casts" 6 | ALOAD 2 7 | LDC "java.util.HashMap" 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$CheckcastAfter$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/CheckcastAfter" 13 | ] 14 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap] [java/util/HashMap] 15 | ASTORE 3 16 | L3 17 | LINENUMBER 119 L3 18 | IFEQ L4 19 | L5 20 | LINENUMBER 120 L5 21 | L4 22 | LINENUMBER 122 L4 23 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 24 | L6 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 26 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 27 | LOCALVARIABLE d Ljava/util/HashMap; L3 L6 3 28 | MAXSTACK = 5 29 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/CheckcastBefore: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L2 4 | ALOAD 0 5 | LDC "resources.OnMethodTest" 6 | LDC "java.util.HashMap" 7 | ALOAD 2 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$CheckcastBefore$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/CheckcastBefore" 13 | ] 14 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap] [java/util/HashMap] 15 | CHECKCAST java/util/HashMap 16 | ASTORE 3 17 | L3 18 | LINENUMBER 119 L3 19 | IFEQ L4 20 | L5 21 | LINENUMBER 120 L5 22 | L4 23 | LINENUMBER 122 L4 24 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 25 | L6 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 27 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 28 | LOCALVARIABLE d Ljava/util/HashMap; L3 L6 3 29 | MAXSTACK = 5 30 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ConstructorArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | ALOAD 0 4 | ALOAD 1 5 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ConstructorArgs$args(Ljava/lang/Object;Ljava/lang/String;)V [ 6 | // handle kind 0x6 : INVOKESTATIC 7 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 8 | // arguments: 9 | "org/openjdk/btrace/runtime/auxiliary/ConstructorArgs" 10 | ] 11 | FRAME FULL [resources/OnMethodTest java/lang/String] [] -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/Error: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L1 L1 java/lang/Throwable 2 | FRAME SAME1 java/lang/Throwable 3 | DUP 4 | ASTORE 1 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L2 7 | ALOAD 0 8 | LDC "uncaught" 9 | ALOAD 1 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Error$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Throwable;)V [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/Error" 15 | ] 16 | L2 17 | FRAME FULL [resources/OnMethodTest java/lang/Throwable] [java/lang/Throwable] 18 | ATHROW 19 | MAXSTACK = 4 20 | MAXLOCALS = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ErrorCaught: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L2 L2 java/lang/Throwable 2 | L3 3 | LINENUMBER 180 L3 4 | L4 5 | LINENUMBER 182 L4 6 | L2 7 | FRAME SAME1 java/lang/Throwable 8 | DUP 9 | ASTORE 2 10 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 11 | IFNE L5 12 | ALOAD 0 13 | LDC "caught" 14 | ALOAD 2 15 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ErrorCaught$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Throwable;)V [ 16 | // handle kind 0x6 : INVOKESTATIC 17 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 18 | // arguments: 19 | "org/openjdk/btrace/runtime/auxiliary/ErrorCaught" 20 | ] 21 | L5 22 | FRAME FULL [resources/OnMethodTest T java/lang/Throwable] [java/lang/Throwable] 23 | ATHROW 24 | LOCALVARIABLE e Ljava/lang/RuntimeException; L3 L4 1 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | MAXSTACK = 4 27 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/ErrorDuration: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L1 L1 java/lang/Throwable 2 | LCONST_0 3 | LSTORE 1 4 | INVOKESTATIC java/lang/System.nanoTime ()J 5 | LSTORE 3 6 | FRAME FULL [resources/OnMethodTest J J] [java/lang/Throwable] 7 | INVOKESTATIC java/lang/System.nanoTime ()J 8 | LLOAD 3 9 | LSUB 10 | LSTORE 1 11 | DUP 12 | ASTORE 5 13 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 14 | IFNE L2 15 | ALOAD 0 16 | LDC "uncaught" 17 | LLOAD 1 18 | ALOAD 5 19 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ErrorDuration$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Throwable;)V [ 20 | // handle kind 0x6 : INVOKESTATIC 21 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 22 | // arguments: 23 | "org/openjdk/btrace/runtime/auxiliary/ErrorDuration" 24 | ] 25 | L2 26 | FRAME FULL [resources/OnMethodTest J J java/lang/Throwable] [java/lang/Throwable] 27 | ATHROW 28 | MAXSTACK = 6 29 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldGetAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 1 3 | DUP 4 | ISTORE 2 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L1 7 | ALOAD 0 8 | ALOAD 1 9 | LDC "field int resources.OnMethodTest#field" 10 | ILOAD 2 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetAfter$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/FieldGetAfter" 16 | ] 17 | L1 18 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest I] [resources/OnMethodTest I] 19 | L2 20 | LINENUMBER 102 L2 21 | L3 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 23 | MAXSTACK = 6 24 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldGetAfterStatic: -------------------------------------------------------------------------------- 1 | DUP2 2 | LSTORE 1 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L1 5 | ALOAD 0 6 | ACONST_NULL 7 | LDC "static field long resources.OnMethodTest#sField" 8 | LLOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetAfterStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/FieldGetAfterStatic" 14 | ] 15 | L1 16 | FRAME FULL [resources/OnMethodTest J] [J] 17 | L2 18 | LINENUMBER 162 L2 19 | L3 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 21 | MAXSTACK = 7 22 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldGetBefore: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 1 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L1 5 | ALOAD 0 6 | ALOAD 1 7 | LDC "field" 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetBefore$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/FieldGetBefore" 13 | ] 14 | L1 15 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest] [resources/OnMethodTest resources/OnMethodTest] 16 | L2 17 | LINENUMBER 102 L2 18 | L3 19 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 20 | MAXSTACK = 5 21 | MAXLOCALS = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldGetBeforeStatic: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | ALOAD 0 4 | ACONST_NULL 5 | LDC "sField" 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetBeforeStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/FieldGetBeforeStatic" 11 | ] 12 | L1 13 | FRAME SAME 14 | L2 15 | LINENUMBER 162 L2 16 | L3 17 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldSetAfter: -------------------------------------------------------------------------------- 1 | ISTORE 1 2 | DUP 3 | ASTORE 2 4 | ILOAD 1 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L1 7 | ALOAD 0 8 | ALOAD 2 9 | LDC "field" 10 | ILOAD 1 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetAfter$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/FieldSetAfter" 16 | ] 17 | FRAME APPEND [I resources/OnMethodTest] 18 | MAXSTACK = 4 19 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldSetAfterStatic: -------------------------------------------------------------------------------- 1 | LSTORE 1 2 | LLOAD 1 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L1 5 | ALOAD 0 6 | ACONST_NULL 7 | LDC "sField" 8 | LLOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetAfterStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/FieldSetAfterStatic" 14 | ] 15 | FRAME APPEND [J] 16 | MAXSTACK = 5 17 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldSetBefore: -------------------------------------------------------------------------------- 1 | ISTORE 1 2 | DUP 3 | ASTORE 2 4 | ILOAD 1 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L1 7 | ALOAD 0 8 | ALOAD 2 9 | LDC "field" 10 | ILOAD 1 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetBefore$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/FieldSetBefore" 16 | ] 17 | L1 18 | FRAME FULL [resources/OnMethodTest I resources/OnMethodTest] [resources/OnMethodTest I] 19 | L2 20 | LINENUMBER 102 L2 21 | L3 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 23 | MAXSTACK = 6 24 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/FieldSetBeforeStatic: -------------------------------------------------------------------------------- 1 | LSTORE 1 2 | LLOAD 1 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L1 5 | ALOAD 0 6 | ACONST_NULL 7 | LDC "sField" 8 | LLOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetBeforeStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/FieldSetBeforeStatic" 14 | ] 15 | L1 16 | FRAME FULL [resources/OnMethodTest J] [J] 17 | L2 18 | LINENUMBER 162 L2 19 | L3 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 21 | MAXSTACK = 7 22 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/InstanceofAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 3 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L3 5 | ALOAD 0 6 | LDC "casts" 7 | LDC "java.util.HashMap" 8 | ALOAD 3 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$InstanceofAfter$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/InstanceofAfter" 14 | ] 15 | L3 16 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap java/util/HashMap] [I] 17 | IFEQ L4 18 | L5 19 | LINENUMBER 120 L5 20 | L4 21 | LINENUMBER 122 L4 22 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 23 | L6 24 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 25 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 26 | LOCALVARIABLE d Ljava/util/HashMap; L2 L6 2 27 | MAXSTACK = 5 28 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/InstanceofBefore: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 3 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L3 5 | ALOAD 0 6 | LDC "resources.OnMethodTest" 7 | LDC "java.util.HashMap" 8 | ALOAD 3 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$InstanceofBefore$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/InstanceofBefore" 14 | ] 15 | L3 16 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap java/util/HashMap] [java/util/HashMap] 17 | IFEQ L4 18 | L5 19 | LINENUMBER 120 L5 20 | L4 21 | LINENUMBER 122 L4 22 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 23 | L6 24 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 25 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 26 | LOCALVARIABLE d Ljava/util/HashMap; L2 L6 2 27 | MAXSTACK = 5 28 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/Line: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L2 3 | ALOAD 0 4 | LDC "exception" 5 | LDC 84 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Line$args(Ljava/lang/Object;Ljava/lang/String;I)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/Line" 11 | ] 12 | L2 13 | FRAME SAME1 java/lang/Throwable 14 | L3 15 | LINENUMBER 85 L3 16 | L4 17 | LINENUMBER 87 L4 18 | L5 19 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 1 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 21 | MAXSTACK = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MatchAnnotated: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MatchAnnotated$args(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/MatchAnnotated" 9 | ] 10 | FRAME SAME 11 | MAXSTACK = 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MatchAnnotatedRegex: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MatchAnnotatedRegex$args(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/MatchAnnotatedRegex" 9 | ] 10 | FRAME SAME 11 | MAXSTACK = 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MatchDerived: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | ALOAD 1 5 | ALOAD 2 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MatchDerived$args(Lresources/AbstractClass;Ljava/lang/String;Ljava/util/Map;)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/MatchDerived" 11 | ] 12 | FRAME SAME 13 | MAXSTACK = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCall: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | ALOAD 0 7 | ALOAD 6 8 | LLOAD 4 9 | ALOAD 7 10 | LDC "special long resources.OnMethodTest#callTarget(java.lang.String, long)" 11 | LDC "resources.OnMethodTest" 12 | LDC "callTopLevel" 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCall$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/MethodCall" 18 | ] 19 | L1 20 | FRAME APPEND [J java/lang/String resources/OnMethodTest] 21 | ALOAD 7 22 | ALOAD 6 23 | LLOAD 4 24 | L2 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 27 | LOCALVARIABLE b J L0 L2 2 28 | MAXSTACK = 8 29 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallDuration: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | LCONST_0 5 | LSTORE 8 6 | INVOKESTATIC java/lang/System.nanoTime ()J 7 | LSTORE 10 8 | ALOAD 7 9 | ALOAD 6 10 | LLOAD 4 11 | INVOKESTATIC java/lang/System.nanoTime ()J 12 | LLOAD 10 13 | LSUB 14 | LSTORE 8 15 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 16 | IFNE L1 17 | DUP2 18 | LSTORE 12 19 | LLOAD 12 20 | LLOAD 8 21 | ALOAD 6 22 | LLOAD 4 23 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallDuration$args(JJLjava/lang/String;J)V [ 24 | // handle kind 0x6 : INVOKESTATIC 25 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 26 | // arguments: 27 | "org/openjdk/btrace/runtime/auxiliary/MethodCallDuration" 28 | ] 29 | L1 30 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest J J] [J] 31 | L2 32 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 33 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 34 | LOCALVARIABLE b J L0 L2 2 35 | MAXSTACK = 9 36 | MAXLOCALS = 14 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallDurationSampled: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | LCONST_0 5 | LSTORE 8 6 | ICONST_2 7 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hitTimed (I)J 8 | DUP2 9 | LSTORE 10 10 | L2I 11 | ISTORE 12 12 | ALOAD 7 13 | ALOAD 6 14 | LLOAD 4 15 | ILOAD 12 16 | IFEQ L1 17 | ICONST_2 18 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.getEndTs (I)J 19 | LLOAD 10 20 | LSUB 21 | LSTORE 8 22 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 23 | IFNE L1 24 | DUP2 25 | LSTORE 13 26 | LLOAD 13 27 | LLOAD 8 28 | ALOAD 6 29 | LLOAD 4 30 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallDurationSampled$args(JJLjava/lang/String;J)V [ 31 | // handle kind 0x6 : INVOKESTATIC 32 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 33 | // arguments: 34 | "org/openjdk/btrace/runtime/auxiliary/MethodCallDurationSampled" 35 | ] 36 | L1 37 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest J J I] [J] 38 | L2 39 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 40 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 41 | LOCALVARIABLE b J L0 L2 2 42 | MAXSTACK = 9 43 | MAXLOCALS = 15 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallNoArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallNoArgs$args()V [ 4 | // handle kind 0x6 : INVOKESTATIC 5 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 6 | // arguments: 7 | "org/openjdk/btrace/runtime/auxiliary/MethodCallNoArgs" 8 | ] 9 | L1 10 | FRAME FULL [resources/OnMethodTest java/lang/String J] [resources/OnMethodTest java/lang/String J] 11 | L2 12 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 13 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 14 | LOCALVARIABLE b J L0 L2 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallReturn: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L1 9 | DUP2 10 | LSTORE 8 11 | LLOAD 8 12 | ALOAD 6 13 | LLOAD 4 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturn$args(JLjava/lang/String;J)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturn" 19 | ] 20 | L1 21 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 22 | L2 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 24 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 25 | LOCALVARIABLE b J L0 L2 2 26 | MAXSTACK = 7 27 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallReturnAugmented: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L1 9 | LSTORE 8 10 | ALOAD 6 11 | LLOAD 4 12 | LLOAD 8 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturnAugmented$args(Ljava/lang/String;JJ)J [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented" 18 | ] 19 | L1 20 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 21 | L2 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 23 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 24 | LOCALVARIABLE b J L0 L2 2 25 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallReturnAugmented1: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L1 9 | LSTORE 8 10 | LLOAD 8 11 | ALOAD 6 12 | LLOAD 4 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturnAugmented1$args(JLjava/lang/String;J)J [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented1" 18 | ] 19 | L1 20 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 21 | L2 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 23 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 24 | LOCALVARIABLE b J L0 L2 2 25 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallSampled: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ICONST_2 5 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hit (I)Z 6 | ISTORE 8 7 | ILOAD 8 8 | IFEQ L1 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L1 11 | ALOAD 0 12 | ALOAD 6 13 | LLOAD 4 14 | ALOAD 7 15 | LDC "special long resources.OnMethodTest#callTarget(java.lang.String, long)" 16 | LDC "resources.OnMethodTest" 17 | LDC "callTopLevel" 18 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallSampled$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 19 | // handle kind 0x6 : INVOKESTATIC 20 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 21 | // arguments: 22 | "org/openjdk/btrace/runtime/auxiliary/MethodCallSampled" 23 | ] 24 | L1 25 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest I] [] 26 | ALOAD 7 27 | ALOAD 6 28 | LLOAD 4 29 | L2 30 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 31 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 32 | LOCALVARIABLE b J L0 L2 2 33 | MAXSTACK = 8 34 | MAXLOCALS = 9 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/MethodCallStatic: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L1 5 | ALOAD 0 6 | ALOAD 6 7 | LLOAD 4 8 | ACONST_NULL 9 | LDC "static long resources.OnMethodTest#callTargetStatic(java.lang.String, long)" 10 | LDC "resources.OnMethodTest" 11 | LDC "callTopLevel" 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallStatic$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/MethodCallStatic" 17 | ] 18 | L1 19 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String] [J] 20 | ALOAD 6 21 | LLOAD 4 22 | L2 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 24 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 25 | LOCALVARIABLE b J L0 L2 2 26 | MAXSTACK = 10 27 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NativeWithReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NativeWithReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NativeWithoutReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NativeWithoutReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NewAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L1 4 | ALOAD 0 5 | ALOAD 1 6 | LDC "java.util.HashMap" 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewAfter$args(Ljava/lang/Object;Ljava/util/Map;Ljava/lang/String;)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/NewAfter" 12 | ] 13 | FRAME FULL [resources/OnMethodTest java/util/HashMap] [java/util/HashMap] 14 | ASTORE 2 15 | L2 16 | LINENUMBER 106 L2 17 | L3 18 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 19 | LOCALVARIABLE m Ljava/util/Map; L2 L3 2 20 | MAXSTACK = 4 21 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NewArrayIntAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L1 4 | ALOAD 0 5 | ALOAD 1 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewArrayIntAfter$args(Ljava/lang/Object;[I)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/NewArrayIntAfter" 11 | ] 12 | FRAME FULL [resources/OnMethodTest [I] [[I] 13 | ASTORE 2 14 | L2 15 | LINENUMBER 110 L2 16 | ASTORE 3 17 | L3 18 | LINENUMBER 111 L3 19 | ASTORE 4 20 | L4 21 | LINENUMBER 112 L4 22 | ASTORE 5 23 | L5 24 | LINENUMBER 113 L5 25 | L6 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 27 | LOCALVARIABLE a [I L2 L6 2 28 | LOCALVARIABLE b [[I L3 L6 3 29 | LOCALVARIABLE c [Ljava/lang/String; L4 L6 4 30 | LOCALVARIABLE d [[Ljava/lang/String; L5 L6 5 31 | MAXSTACK = 3 32 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NewArrayStringAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 3 | IFNE L3 4 | ALOAD 0 5 | ALOAD 3 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewArrayStringAfter$args(Ljava/lang/Object;[Ljava/lang/String;)V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/NewArrayStringAfter" 11 | ] 12 | FRAME FULL [resources/OnMethodTest [I [[I [Ljava/lang/String;] [[Ljava/lang/String;] 13 | ASTORE 4 14 | L4 15 | LINENUMBER 112 L4 16 | ASTORE 5 17 | L5 18 | LINENUMBER 113 L5 19 | L6 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 21 | LOCALVARIABLE a [I L1 L6 1 22 | LOCALVARIABLE b [[I L2 L6 2 23 | LOCALVARIABLE c [Ljava/lang/String; L4 L6 4 24 | LOCALVARIABLE d [[Ljava/lang/String; L5 L6 5 25 | MAXSTACK = 3 26 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NewBefore: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | ALOAD 0 4 | LDC "java.util.HashMap" 5 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewBefore$args(Ljava/lang/Object;Ljava/lang/String;)V [ 6 | // handle kind 0x6 : INVOKESTATIC 7 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 8 | // arguments: 9 | "org/openjdk/btrace/runtime/auxiliary/NewBefore" 10 | ] 11 | L1 12 | FRAME SAME 13 | L2 14 | LINENUMBER 106 L2 15 | L3 16 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 17 | LOCALVARIABLE m Ljava/util/Map; L2 L3 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NoArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgs$argsEmpty(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/NoArgs" 9 | ] 10 | FRAME SAME -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NoArgsEntryReturn: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgsEntryReturn$argsEmptyEntry(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/NoArgsEntryReturn" 9 | ] 10 | FRAME SAME 11 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 12 | IFNE L1 13 | DUP2 14 | LSTORE 6 15 | ALOAD 0 16 | LLOAD 6 17 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgsEntryReturn$argsEmptyReturn(Ljava/lang/Object;J)V [ 18 | // handle kind 0x6 : INVOKESTATIC 19 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 20 | // arguments: 21 | "org/openjdk/btrace/runtime/auxiliary/NoArgsEntryReturn" 22 | ] 23 | L1 24 | FRAME SAME1 J 25 | L2 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 27 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 28 | LOCALVARIABLE b J L0 L2 2 29 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 30 | LOCALVARIABLE d [I L0 L2 5 31 | MAXSTACK = 5 32 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/NoArgsEntryReturnNoCapture: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgsEntryReturnNoCapture$argsEmptyEntry(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/NoArgsEntryReturnNoCapture" 9 | ] 10 | FRAME SAME 11 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 12 | IFNE L1 13 | ALOAD 0 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgsEntryReturnNoCapture$argsEmptyReturn(Ljava/lang/Object;)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/NoArgsEntryReturnNoCapture" 19 | ] 20 | L1 21 | FRAME SAME1 J 22 | L2 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 24 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 25 | LOCALVARIABLE b J L0 L2 2 26 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 27 | LOCALVARIABLE d [I L0 L2 5 28 | MAXSTACK = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ALOAD 0 4 | LLOAD 1 5 | ALOAD 3 6 | ALOAD 4 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgs$args(Ljava/lang/String;J[Ljava/lang/String;[I)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/StaticArgs" 12 | ] 13 | FRAME SAME 14 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticArgsReturn: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L1 3 | DUP2 4 | LSTORE 5 5 | ALOAD 0 6 | LLOAD 5 7 | LLOAD 1 8 | ALOAD 3 9 | ALOAD 4 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgsReturn$args(Ljava/lang/String;JJ[Ljava/lang/String;[I)V [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/StaticArgsReturn" 15 | ] 16 | L1 17 | FRAME SAME1 J 18 | L2 19 | LOCALVARIABLE a Ljava/lang/String; L0 L2 0 20 | LOCALVARIABLE b J L0 L2 1 21 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 3 22 | LOCALVARIABLE d [I L0 L2 4 23 | MAXSTACK = 9 24 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticArgsSelf: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ACONST_NULL 4 | ALOAD 0 5 | LLOAD 1 6 | ALOAD 3 7 | ALOAD 4 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgsSelf$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/StaticArgsSelf" 13 | ] 14 | FRAME SAME 15 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticMethodCall: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L2 6 | ALOAD 6 7 | LLOAD 4 8 | ALOAD 7 9 | LDC "special long resources.OnMethodTest#callTarget(java.lang.String, long)" 10 | LDC "resources.OnMethodTest" 11 | LDC "callTopLevelStatic" 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticMethodCall$args(Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/StaticMethodCall" 17 | ] 18 | L2 19 | FRAME FULL [java/lang/String J resources/OnMethodTest J java/lang/String resources/OnMethodTest] [J] 20 | ALOAD 7 21 | ALOAD 6 22 | LLOAD 4 23 | L3 24 | LOCALVARIABLE a Ljava/lang/String; L0 L3 0 25 | LOCALVARIABLE b J L0 L3 1 26 | LOCALVARIABLE instance Lresources/OnMethodTest; L1 L3 3 27 | MAXSTACK = 9 28 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticMethodCallStatic: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L2 5 | ALOAD 6 6 | LLOAD 4 7 | LDC "static long resources.OnMethodTest#callTargetStatic(java.lang.String, long)" 8 | LDC "resources.OnMethodTest" 9 | LDC "callTopLevelStatic" 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticMethodCallStatic$args(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/StaticMethodCallStatic" 15 | ] 16 | L2 17 | FRAME APPEND [resources/OnMethodTest J java/lang/String] 18 | ALOAD 6 19 | LLOAD 4 20 | L3 21 | LOCALVARIABLE a Ljava/lang/String; L0 L3 0 22 | LOCALVARIABLE b J L0 L3 1 23 | LOCALVARIABLE instance Lresources/OnMethodTest; L1 L3 3 24 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticNoArgs: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticNoArgs$argsEmpty()V [ 4 | // handle kind 0x6 : INVOKESTATIC 5 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 6 | // arguments: 7 | "org/openjdk/btrace/runtime/auxiliary/StaticNoArgs" 8 | ] 9 | FRAME SAME 10 | MAXSTACK = 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/StaticNoArgsSelf: -------------------------------------------------------------------------------- 1 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 2 | IFNE L0 3 | ACONST_NULL 4 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticNoArgsSelf$argsEmpty(Ljava/lang/Object;)V [ 5 | // handle kind 0x6 : INVOKESTATIC 6 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 7 | // arguments: 8 | "org/openjdk/btrace/runtime/auxiliary/StaticNoArgsSelf" 9 | ] 10 | FRAME SAME 11 | MAXSTACK = 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/SyncEntry: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L4 L5 L5 java/lang/Throwable 2 | DUP 3 | ASTORE 2 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L6 6 | ALOAD 0 7 | LDC "sync" 8 | ALOAD 2 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$SyncEntry$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/SyncEntry" 14 | ] 15 | L6 16 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest resources/OnMethodTest] [resources/OnMethodTest] 17 | L7 18 | LINENUMBER 127 L7 19 | GOTO L8 20 | FRAME FULL [resources/OnMethodTest java/lang/Object resources/OnMethodTest] [java/lang/Throwable] 21 | ASTORE 3 22 | ALOAD 3 23 | L8 24 | LINENUMBER 128 L8 25 | FRAME FULL [resources/OnMethodTest T resources/OnMethodTest] [] 26 | L5 27 | FRAME FULL [resources/OnMethodTest] [java/lang/Throwable] 28 | ATHROW 29 | LOCALVARIABLE this Lresources/OnMethodTest; L4 L5 0 30 | MAXSTACK = 4 31 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/SyncMEntry: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L4 L5 L5 java/lang/Throwable 2 | DUP 3 | ASTORE 2 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L6 6 | ALOAD 0 7 | LDC "syncM" 8 | ALOAD 2 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$SyncMEntry$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/SyncMEntry" 14 | ] 15 | L6 16 | FRAME FULL [resources/OnMethodTest java/lang/Object java/lang/Object] [java/lang/Object] 17 | L7 18 | LINENUMBER 167 L7 19 | GOTO L8 20 | FRAME SAME1 java/lang/Throwable 21 | ASTORE 3 22 | ALOAD 3 23 | L8 24 | LINENUMBER 168 L8 25 | FRAME FULL [resources/OnMethodTest T java/lang/Object] [] 26 | L5 27 | FRAME FULL [resources/OnMethodTest] [java/lang/Throwable] 28 | ATHROW 29 | LOCALVARIABLE this Lresources/OnMethodTest; L4 L5 0 30 | MAXSTACK = 4 31 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/Throw: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 1 3 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 4 | IFNE L2 5 | ALOAD 0 6 | LDC "resources.OnMethodTest" 7 | LDC "exception" 8 | ALOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Throw$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/Throw" 14 | ] 15 | L2 16 | FRAME FULL [resources/OnMethodTest java/io/IOException] [java/io/IOException] 17 | FRAME FULL [resources/OnMethodTest] [java/io/IOException] 18 | ASTORE 2 19 | L3 20 | LINENUMBER 85 L3 21 | ALOAD 2 22 | L4 23 | LINENUMBER 87 L4 24 | L5 25 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 2 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 27 | MAXSTACK = 5 28 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/AnytypeArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/AnytypeArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | ICONST_4 8 | ANEWARRAY java/lang/Object 9 | DUP 10 | ICONST_0 11 | ALOAD 1 12 | AASTORE 13 | DUP 14 | ICONST_1 15 | LLOAD 2 16 | INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long; 17 | AASTORE 18 | DUP 19 | ICONST_2 20 | ALOAD 4 21 | AASTORE 22 | DUP 23 | ICONST_3 24 | ALOAD 5 25 | AASTORE 26 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$AnytypeArgs$args(Ljava/lang/Object;[Ljava/lang/Object;)V [ 27 | // handle kind 0x6 : INVOKESTATIC 28 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 29 | // arguments: 30 | "org/openjdk/btrace/runtime/auxiliary/AnytypeArgs" 31 | ] 32 | FRAME SAME 33 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/AnytypeArgsNoSelf: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/AnytypeArgsNoSelf.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ICONST_4 7 | ANEWARRAY java/lang/Object 8 | DUP 9 | ICONST_0 10 | ALOAD 1 11 | AASTORE 12 | DUP 13 | ICONST_1 14 | LLOAD 2 15 | INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long; 16 | AASTORE 17 | DUP 18 | ICONST_2 19 | ALOAD 4 20 | AASTORE 21 | DUP 22 | ICONST_3 23 | ALOAD 5 24 | AASTORE 25 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$AnytypeArgsNoSelf$argsNoSelf([Ljava/lang/Object;)V [ 26 | // handle kind 0x6 : INVOKESTATIC 27 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 28 | // arguments: 29 | "org/openjdk/btrace/runtime/auxiliary/AnytypeArgsNoSelf" 30 | ] 31 | FRAME SAME 32 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/Args: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/Args.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Args$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/Args" 16 | ] 17 | FRAME SAME 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsDurationBoxed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsDurationBoxed -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsDurationBoxedErr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsDurationBoxedErr -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsDurationConstructor: -------------------------------------------------------------------------------- 1 | LCONST_0 2 | LSTORE 2 3 | LCONST_0 4 | LSTORE 4 5 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsDurationConstructor.$btrace$$level : I 6 | DUP 7 | ISTORE 6 8 | IFLE L1 9 | INVOKESTATIC java/lang/System.nanoTime ()J 10 | LSTORE 4 11 | FRAME FULL [resources/OnMethodTest java/lang/String J J I] [] 12 | ILOAD 6 13 | IFLE L3 14 | INVOKESTATIC java/lang/System.nanoTime ()J 15 | LLOAD 4 16 | LSUB 17 | LSTORE 2 18 | L3 19 | FRAME SAME 20 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsDurationConstructor.$btrace$$level : I 21 | ICONST_1 22 | IF_ICMPLT L4 23 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 24 | IFNE L4 25 | ALOAD 0 26 | LLOAD 2 27 | ALOAD 1 28 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsDurationConstructor$args(Ljava/lang/Object;JLjava/lang/String;)V [ 29 | // handle kind 0x6 : INVOKESTATIC 30 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 31 | // arguments: 32 | "org/openjdk/btrace/runtime/auxiliary/ArgsDurationConstructor" 33 | ] 34 | L4 35 | FRAME SAME 36 | L5 37 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 38 | LOCALVARIABLE a Ljava/lang/String; L0 L5 1 39 | MAXSTACK = 4 40 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsNoSelf: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsNoSelf.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | LDC "public long resources.OnMethodTest#args(java.lang.String, long, java.lang.String[], int[])" 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsNoSelf$argsNoSelf(Ljava/lang/String;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArgsNoSelf" 16 | ] 17 | FRAME SAME 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsReturn: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsReturn.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | DUP2 7 | LSTORE 6 8 | ALOAD 0 9 | LLOAD 6 10 | ALOAD 1 11 | LLOAD 2 12 | ALOAD 4 13 | ALOAD 5 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturn$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturn" 19 | ] 20 | L1 21 | FRAME SAME1 J 22 | L2 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 24 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 25 | LOCALVARIABLE b J L0 L2 2 26 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 27 | LOCALVARIABLE d [I L0 L2 5 28 | MAXSTACK = 10 29 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsReturnAugmented: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | LSTORE 6 7 | ALOAD 0 8 | ALOAD 1 9 | LLOAD 2 10 | ALOAD 4 11 | ALOAD 5 12 | LLOAD 6 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnAugmented$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[IJ)J [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented" 18 | ] 19 | L1 20 | FRAME SAME1 J 21 | L2 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 23 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 24 | LOCALVARIABLE b J L0 L2 2 25 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 26 | LOCALVARIABLE d [I L0 L2 5 27 | MAXSTACK = 8 28 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsReturnAugmented1: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented1.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | LSTORE 6 7 | ALOAD 0 8 | LLOAD 6 9 | ALOAD 1 10 | LLOAD 2 11 | ALOAD 4 12 | ALOAD 5 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsReturnAugmented1$args(Ljava/lang/Object;JLjava/lang/String;J[Ljava/lang/String;[I)J [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/ArgsReturnAugmented1" 18 | ] 19 | L1 20 | FRAME SAME1 J 21 | L2 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 23 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 24 | LOCALVARIABLE b J L0 L2 2 25 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 4 26 | LOCALVARIABLE d [I L0 L2 5 27 | MAXSTACK = 8 28 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsSampled: -------------------------------------------------------------------------------- 1 | ICONST_0 2 | ISTORE 6 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsSampled.$btrace$$level : I 4 | DUP 5 | ISTORE 7 6 | IFLE L0 7 | ICONST_1 8 | INVOKESTATIC org/openjdk/btrace/instr/MethodTracker.hit (I)Z 9 | ISTORE 6 10 | FRAME APPEND [I I] 11 | ILOAD 7 12 | IFLE L1 13 | ILOAD 6 14 | IFEQ L2 15 | L1 16 | FRAME SAME 17 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsSampled.$btrace$$level : I 18 | ICONST_1 19 | IF_ICMPLT L2 20 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 21 | IFNE L2 22 | ALOAD 0 23 | ALOAD 1 24 | LLOAD 2 25 | ALOAD 4 26 | ALOAD 5 27 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsSampled$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 28 | // handle kind 0x6 : INVOKESTATIC 29 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 30 | // arguments: 31 | "org/openjdk/btrace/runtime/auxiliary/ArgsSampled" 32 | ] 33 | L2 34 | LINENUMBER 57 L2 35 | FRAME SAME 36 | L3 37 | LOCALVARIABLE this Lresources/OnMethodTest; L2 L3 0 38 | LOCALVARIABLE a Ljava/lang/String; L2 L3 1 39 | LOCALVARIABLE b J L2 L3 2 40 | LOCALVARIABLE c [Ljava/lang/String; L2 L3 4 41 | LOCALVARIABLE d [I L2 L3 5 42 | MAXSTACK = 6 43 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsShared: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsShared.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsShared$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArgsShared" 16 | ] 17 | FRAME SAME 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArgsUnsafe: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArgsUnsafe.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | ALOAD 1 8 | LLOAD 2 9 | ALOAD 4 10 | ALOAD 5 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArgsUnsafe$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArgsUnsafe" 16 | ] 17 | FRAME SAME 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArrayGetAfter: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArrayGetAfter.$btrace$$level : I 4 | ICONST_1 5 | ISUB 6 | DUP 7 | ISTORE 5 8 | IFLT L2 9 | FRAME FULL [resources/OnMethodTest I [I I [I I] [[I I] 10 | IALOAD 11 | ILOAD 5 12 | IFLT L3 13 | DUP 14 | ISTORE 6 15 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 16 | IFNE L3 17 | ALOAD 0 18 | ILOAD 6 19 | ALOAD 4 20 | ILOAD 3 21 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetAfter$args(Ljava/lang/Object;I[II)V [ 22 | // handle kind 0x6 : INVOKESTATIC 23 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 24 | // arguments: 25 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetAfter" 26 | ] 27 | L3 28 | FRAME FULL [resources/OnMethodTest I [I I [I I I] [I] 29 | ISTORE 7 30 | L4 31 | LINENUMBER 97 L4 32 | L5 33 | LINENUMBER 98 L5 34 | L6 35 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 36 | LOCALVARIABLE a I L0 L6 1 37 | LOCALVARIABLE arr [I L1 L6 2 38 | LOCALVARIABLE b I L4 L6 7 39 | MAXSTACK = 5 40 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArrayGetAfterAny: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArrayGetAfterAny.$btrace$$level : I 4 | ICONST_1 5 | ISUB 6 | DUP 7 | ISTORE 5 8 | IFLT L2 9 | FRAME FULL [resources/OnMethodTest I [I I [I I] [[I I] 10 | IALOAD 11 | ILOAD 5 12 | IFLT L3 13 | DUP 14 | ISTORE 6 15 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 16 | IFNE L3 17 | ALOAD 0 18 | ILOAD 6 19 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 20 | ALOAD 4 21 | ILOAD 3 22 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetAfterAny$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V [ 23 | // handle kind 0x6 : INVOKESTATIC 24 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 25 | // arguments: 26 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetAfterAny" 27 | ] 28 | L3 29 | FRAME FULL [resources/OnMethodTest I [I I [I I I] [I] 30 | ISTORE 7 31 | L4 32 | LINENUMBER 97 L4 33 | L5 34 | LINENUMBER 98 L5 35 | L6 36 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 37 | LOCALVARIABLE a I L0 L6 1 38 | LOCALVARIABLE arr [I L1 L6 2 39 | LOCALVARIABLE b I L4 L6 7 40 | MAXSTACK = 5 41 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArrayGetBefore: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArrayGetBefore.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L2 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 0 9 | ALOAD 4 10 | ILOAD 3 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetBefore$args(Ljava/lang/Object;[II)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetBefore" 16 | ] 17 | FRAME FULL [resources/OnMethodTest I [I I [I] [[I I] 18 | IALOAD 19 | ISTORE 5 20 | L3 21 | LINENUMBER 97 L3 22 | L4 23 | LINENUMBER 98 L4 24 | L5 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 26 | LOCALVARIABLE a I L0 L5 1 27 | LOCALVARIABLE arr [I L1 L5 2 28 | LOCALVARIABLE b I L3 L5 5 29 | MAXSTACK = 5 30 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArrayGetBeforeAny: -------------------------------------------------------------------------------- 1 | DUP2 2 | ASTORE 4 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArrayGetBeforeAny.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L2 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 0 9 | ALOAD 4 10 | ILOAD 3 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArrayGetBeforeAny$args(Ljava/lang/Object;Ljava/lang/Object;I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/ArrayGetBeforeAny" 16 | ] 17 | FRAME FULL [resources/OnMethodTest I [I I [I] [[I I] 18 | IALOAD 19 | ISTORE 5 20 | L3 21 | LINENUMBER 97 L3 22 | L4 23 | LINENUMBER 98 L4 24 | L5 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 26 | LOCALVARIABLE a I L0 L5 1 27 | LOCALVARIABLE arr [I L1 L5 2 28 | LOCALVARIABLE b I L3 L5 5 29 | MAXSTACK = 5 30 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArraySetAfter: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArraySetAfter.$btrace$$level : I 7 | ICONST_1 8 | ISUB 9 | DUP 10 | ISTORE 7 11 | IFLT L3 12 | L3 13 | FRAME FULL [resources/OnMethodTest I [I I I I [I I] [[I I I] 14 | ILOAD 7 15 | IFLT L4 16 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 17 | IFNE L4 18 | ALOAD 0 19 | ALOAD 6 20 | ILOAD 5 21 | ILOAD 4 22 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetAfter$args(Ljava/lang/Object;[III)V [ 23 | // handle kind 0x6 : INVOKESTATIC 24 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 25 | // arguments: 26 | "org/openjdk/btrace/runtime/auxiliary/ArraySetAfter" 27 | ] 28 | L4 29 | LINENUMBER 98 L4 30 | FRAME SAME 31 | L5 32 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 33 | LOCALVARIABLE a I L0 L5 1 34 | LOCALVARIABLE arr [I L1 L5 2 35 | LOCALVARIABLE b I L2 L5 3 36 | MAXSTACK = 5 37 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArraySetAfterAny: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArraySetAfterAny.$btrace$$level : I 7 | ICONST_1 8 | ISUB 9 | DUP 10 | ISTORE 7 11 | IFLT L3 12 | L3 13 | FRAME FULL [resources/OnMethodTest I [I I I I [I I] [[I I I] 14 | ILOAD 7 15 | IFLT L4 16 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 17 | IFNE L4 18 | ALOAD 0 19 | ALOAD 6 20 | ILOAD 5 21 | ILOAD 4 22 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 23 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetAfterAny$args(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)V [ 24 | // handle kind 0x6 : INVOKESTATIC 25 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 26 | // arguments: 27 | "org/openjdk/btrace/runtime/auxiliary/ArraySetAfterAny" 28 | ] 29 | L4 30 | LINENUMBER 98 L4 31 | FRAME SAME 32 | L5 33 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 34 | LOCALVARIABLE a I L0 L5 1 35 | LOCALVARIABLE arr [I L1 L5 2 36 | LOCALVARIABLE b I L2 L5 3 37 | MAXSTACK = 5 38 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArraySetBefore: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArraySetBefore.$btrace$$level : I 7 | ICONST_1 8 | IF_ICMPLT L3 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L3 11 | ALOAD 0 12 | ALOAD 6 13 | ILOAD 5 14 | ILOAD 4 15 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetBefore$args(Ljava/lang/Object;[III)V [ 16 | // handle kind 0x6 : INVOKESTATIC 17 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 18 | // arguments: 19 | "org/openjdk/btrace/runtime/auxiliary/ArraySetBefore" 20 | ] 21 | L3 22 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [[I I I] 23 | L4 24 | LINENUMBER 98 L4 25 | L5 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 27 | LOCALVARIABLE a I L0 L5 1 28 | LOCALVARIABLE arr [I L1 L5 2 29 | LOCALVARIABLE b I L2 L5 3 30 | MAXSTACK = 7 31 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ArraySetBeforeAny: -------------------------------------------------------------------------------- 1 | ISTORE 4 2 | DUP2 3 | ISTORE 5 4 | ASTORE 6 5 | ILOAD 4 6 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ArraySetBeforeAny.$btrace$$level : I 7 | ICONST_1 8 | IF_ICMPLT L3 9 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 10 | IFNE L3 11 | ALOAD 0 12 | ALOAD 6 13 | ILOAD 5 14 | ILOAD 4 15 | INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ArraySetBeforeAny$args(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)V [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/ArraySetBeforeAny" 21 | ] 22 | L3 23 | FRAME FULL [resources/OnMethodTest I [I I I I [I] [[I I I] 24 | L4 25 | LINENUMBER 98 L4 26 | L5 27 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 28 | LOCALVARIABLE a I L0 L5 1 29 | LOCALVARIABLE arr [I L1 L5 2 30 | LOCALVARIABLE b I L2 L5 3 31 | MAXSTACK = 7 32 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/Catch: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/Catch.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L2 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L2 7 | ALOAD 0 8 | ALOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Catch$args(Ljava/lang/Object;Ljava/io/IOException;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/Catch" 14 | ] 15 | FRAME FULL [resources/OnMethodTest java/io/IOException] [java/io/IOException] 16 | ASTORE 2 17 | L3 18 | LINENUMBER 85 L3 19 | ALOAD 2 20 | L4 21 | LINENUMBER 87 L4 22 | L5 23 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 2 24 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 25 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/CheckcastAfter: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/CheckcastAfter.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L2 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L2 7 | ALOAD 0 8 | LDC "casts" 9 | LDC "java.util.HashMap" 10 | ALOAD 2 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$CheckcastAfter$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/CheckcastAfter" 16 | ] 17 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap] [java/util/HashMap] 18 | ASTORE 3 19 | L3 20 | LINENUMBER 119 L3 21 | IFEQ L4 22 | L5 23 | LINENUMBER 120 L5 24 | L4 25 | LINENUMBER 122 L4 26 | FRAME FULL [resources/OnMethodTest java/util/Map T java/util/HashMap] [] 27 | L6 28 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 29 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 30 | LOCALVARIABLE d Ljava/util/HashMap; L3 L6 3 31 | MAXSTACK = 5 32 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/CheckcastBefore: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/CheckcastBefore.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L2 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L2 7 | ALOAD 0 8 | LDC "resources.OnMethodTest" 9 | LDC "java.util.HashMap" 10 | ALOAD 2 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$CheckcastBefore$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/CheckcastBefore" 16 | ] 17 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap] [java/util/HashMap] 18 | CHECKCAST java/util/HashMap 19 | ASTORE 3 20 | L3 21 | LINENUMBER 119 L3 22 | IFEQ L4 23 | L5 24 | LINENUMBER 120 L5 25 | L4 26 | LINENUMBER 122 L4 27 | FRAME FULL [resources/OnMethodTest java/util/Map T java/util/HashMap] [] 28 | L6 29 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 30 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 31 | LOCALVARIABLE d Ljava/util/HashMap; L3 L6 3 32 | MAXSTACK = 5 33 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ConstructorArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ConstructorArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | ALOAD 0 7 | ALOAD 1 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ConstructorArgs$args(Ljava/lang/Object;Ljava/lang/String;)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/ConstructorArgs" 13 | ] 14 | FRAME FULL [resources/OnMethodTest java/lang/String] [] -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/Error: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L1 L1 java/lang/Throwable 2 | FRAME SAME1 java/lang/Throwable 3 | DUP 4 | ASTORE 1 5 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/Error.$btrace$$level : I 6 | ICONST_1 7 | IF_ICMPLT L2 8 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 9 | IFNE L2 10 | ALOAD 0 11 | LDC "uncaught" 12 | ALOAD 1 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Error$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Throwable;)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/Error" 18 | ] 19 | L2 20 | FRAME FULL [resources/OnMethodTest java/lang/Throwable] [java/lang/Throwable] 21 | ATHROW 22 | MAXSTACK = 4 23 | MAXLOCALS = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/ErrorCaught: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L0 L2 L2 java/lang/Throwable 2 | L3 3 | LINENUMBER 180 L3 4 | L4 5 | LINENUMBER 182 L4 6 | L2 7 | FRAME SAME1 java/lang/Throwable 8 | DUP 9 | ASTORE 2 10 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/ErrorCaught.$btrace$$level : I 11 | ICONST_1 12 | IF_ICMPLT L5 13 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 14 | IFNE L5 15 | ALOAD 0 16 | LDC "caught" 17 | ALOAD 2 18 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$ErrorCaught$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Throwable;)V [ 19 | // handle kind 0x6 : INVOKESTATIC 20 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 21 | // arguments: 22 | "org/openjdk/btrace/runtime/auxiliary/ErrorCaught" 23 | ] 24 | L5 25 | FRAME FULL [resources/OnMethodTest T java/lang/Throwable] [java/lang/Throwable] 26 | ATHROW 27 | LOCALVARIABLE e Ljava/lang/RuntimeException; L3 L4 1 28 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 29 | MAXSTACK = 4 30 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldGetAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 1 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldGetAfter.$btrace$$level : I 4 | ICONST_1 5 | ISUB 6 | DUP 7 | ISTORE 2 8 | IFLT L1 9 | L1 10 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest I] [resources/OnMethodTest resources/OnMethodTest] 11 | ILOAD 2 12 | IFLT L2 13 | DUP 14 | ISTORE 3 15 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 16 | IFNE L2 17 | ALOAD 0 18 | ALOAD 1 19 | LDC "field int resources.OnMethodTest#field" 20 | ILOAD 3 21 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetAfter$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 22 | // handle kind 0x6 : INVOKESTATIC 23 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 24 | // arguments: 25 | "org/openjdk/btrace/runtime/auxiliary/FieldGetAfter" 26 | ] 27 | L2 28 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest I I] [resources/OnMethodTest I] 29 | L3 30 | LINENUMBER 102 L3 31 | L4 32 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L4 0 33 | MAXSTACK = 6 34 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldGetAfterStatic: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldGetAfterStatic.$btrace$$level : I 2 | ICONST_1 3 | ISUB 4 | DUP 5 | ISTORE 1 6 | IFLT L1 7 | L1 8 | FRAME APPEND [I] 9 | ILOAD 1 10 | IFLT L2 11 | DUP2 12 | LSTORE 2 13 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 14 | IFNE L2 15 | ALOAD 0 16 | ACONST_NULL 17 | LDC "static field long resources.OnMethodTest#sField" 18 | LLOAD 2 19 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetAfterStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 20 | // handle kind 0x6 : INVOKESTATIC 21 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 22 | // arguments: 23 | "org/openjdk/btrace/runtime/auxiliary/FieldGetAfterStatic" 24 | ] 25 | L2 26 | FRAME FULL [resources/OnMethodTest I J] [J] 27 | L3 28 | LINENUMBER 162 L3 29 | L4 30 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L4 0 31 | MAXSTACK = 7 32 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldGetBefore: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 1 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldGetBefore.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L1 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L1 8 | ALOAD 0 9 | ALOAD 1 10 | LDC "field" 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetBefore$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/FieldGetBefore" 16 | ] 17 | L1 18 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest] [resources/OnMethodTest resources/OnMethodTest] 19 | L2 20 | LINENUMBER 102 L2 21 | L3 22 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 23 | MAXSTACK = 5 24 | MAXLOCALS = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldGetBeforeStatic: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldGetBeforeStatic.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | ALOAD 0 7 | ACONST_NULL 8 | LDC "sField" 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldGetBeforeStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/FieldGetBeforeStatic" 14 | ] 15 | L1 16 | FRAME SAME 17 | L2 18 | LINENUMBER 162 L2 19 | L3 20 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldSetAfter: -------------------------------------------------------------------------------- 1 | ISTORE 1 2 | DUP 3 | ASTORE 2 4 | ILOAD 1 5 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldSetAfter.$btrace$$level : I 6 | ICONST_1 7 | ISUB 8 | DUP 9 | ISTORE 3 10 | IFLT L1 11 | L1 12 | FRAME FULL [resources/OnMethodTest I resources/OnMethodTest I] [resources/OnMethodTest I] 13 | ILOAD 3 14 | IFLT L2 15 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 16 | IFNE L2 17 | ALOAD 0 18 | ALOAD 2 19 | LDC "field" 20 | ILOAD 1 21 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetAfter$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 22 | // handle kind 0x6 : INVOKESTATIC 23 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 24 | // arguments: 25 | "org/openjdk/btrace/runtime/auxiliary/FieldSetAfter" 26 | ] 27 | L2 28 | LINENUMBER 102 L2 29 | FRAME SAME 30 | L3 31 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 32 | MAXSTACK = 4 33 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldSetAfterStatic: -------------------------------------------------------------------------------- 1 | LSTORE 1 2 | LLOAD 1 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldSetAfterStatic.$btrace$$level : I 4 | ICONST_1 5 | ISUB 6 | DUP 7 | ISTORE 3 8 | IFLT L1 9 | L1 10 | FRAME FULL [resources/OnMethodTest J I] [J] 11 | ILOAD 3 12 | IFLT L2 13 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 14 | IFNE L2 15 | ALOAD 0 16 | ACONST_NULL 17 | LDC "sField" 18 | LLOAD 1 19 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetAfterStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 20 | // handle kind 0x6 : INVOKESTATIC 21 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 22 | // arguments: 23 | "org/openjdk/btrace/runtime/auxiliary/FieldSetAfterStatic" 24 | ] 25 | L2 26 | LINENUMBER 162 L2 27 | FRAME SAME 28 | L3 29 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 30 | MAXSTACK = 5 31 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldSetBefore: -------------------------------------------------------------------------------- 1 | ISTORE 1 2 | DUP 3 | ASTORE 2 4 | ILOAD 1 5 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldSetBefore.$btrace$$level : I 6 | ICONST_1 7 | IF_ICMPLT L1 8 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 9 | IFNE L1 10 | ALOAD 0 11 | ALOAD 2 12 | LDC "field" 13 | ILOAD 1 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetBefore$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;I)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/FieldSetBefore" 19 | ] 20 | L1 21 | FRAME FULL [resources/OnMethodTest I resources/OnMethodTest] [resources/OnMethodTest I] 22 | L2 23 | LINENUMBER 102 L2 24 | L3 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 26 | MAXSTACK = 6 27 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/FieldSetBeforeStatic: -------------------------------------------------------------------------------- 1 | LSTORE 1 2 | LLOAD 1 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/FieldSetBeforeStatic.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L1 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L1 8 | ALOAD 0 9 | ACONST_NULL 10 | LDC "sField" 11 | LLOAD 1 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$FieldSetBeforeStatic$args(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;J)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/FieldSetBeforeStatic" 17 | ] 18 | L1 19 | FRAME FULL [resources/OnMethodTest J] [J] 20 | L2 21 | LINENUMBER 162 L2 22 | L3 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 24 | MAXSTACK = 7 25 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/InstanceofAfter: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 3 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/InstanceofAfter.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L3 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | LDC "casts" 10 | LDC "java.util.HashMap" 11 | ALOAD 3 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$InstanceofAfter$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/InstanceofAfter" 17 | ] 18 | L3 19 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap java/util/HashMap] [I] 20 | IFEQ L4 21 | L5 22 | LINENUMBER 120 L5 23 | L4 24 | LINENUMBER 122 L4 25 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 26 | L6 27 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 28 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 29 | LOCALVARIABLE d Ljava/util/HashMap; L2 L6 2 30 | MAXSTACK = 5 31 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/InstanceofBefore: -------------------------------------------------------------------------------- 1 | DUP 2 | ASTORE 3 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/InstanceofBefore.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L3 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L3 8 | ALOAD 0 9 | LDC "resources.OnMethodTest" 10 | LDC "java.util.HashMap" 11 | ALOAD 3 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$InstanceofBefore$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/InstanceofBefore" 17 | ] 18 | L3 19 | FRAME FULL [resources/OnMethodTest java/util/HashMap java/util/HashMap java/util/HashMap] [java/util/HashMap] 20 | IFEQ L4 21 | L5 22 | LINENUMBER 120 L5 23 | L4 24 | LINENUMBER 122 L4 25 | FRAME FULL [resources/OnMethodTest java/util/Map java/util/HashMap java/util/HashMap] [] 26 | L6 27 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 28 | LOCALVARIABLE c Ljava/util/Map; L1 L6 1 29 | LOCALVARIABLE d Ljava/util/HashMap; L2 L6 2 30 | MAXSTACK = 5 31 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/Line: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/Line.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L2 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L2 6 | ALOAD 0 7 | LDC "exception" 8 | LDC 84 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Line$args(Ljava/lang/Object;Ljava/lang/String;I)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/Line" 14 | ] 15 | L2 16 | FRAME SAME1 java/lang/Throwable 17 | L3 18 | LINENUMBER 85 L3 19 | L4 20 | LINENUMBER 87 L4 21 | L5 22 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 1 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 24 | MAXSTACK = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MatchDerived: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MatchDerived -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCall: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCall.$btrace$$level : I 5 | ICONST_1 6 | IF_ICMPLT L1 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L1 9 | ALOAD 0 10 | ALOAD 6 11 | LLOAD 4 12 | ALOAD 7 13 | LDC "special long resources.OnMethodTest#callTarget(java.lang.String, long)" 14 | LDC "resources.OnMethodTest" 15 | LDC "callTopLevel" 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCall$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/MethodCall" 21 | ] 22 | L1 23 | FRAME APPEND [J java/lang/String resources/OnMethodTest] 24 | ALOAD 7 25 | ALOAD 6 26 | LLOAD 4 27 | L2 28 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 29 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 30 | LOCALVARIABLE b J L0 L2 2 31 | MAXSTACK = 8 32 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCallNoArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCallNoArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallNoArgs$args()V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/MethodCallNoArgs" 11 | ] 12 | L1 13 | FRAME FULL [resources/OnMethodTest java/lang/String J] [resources/OnMethodTest java/lang/String J] 14 | L2 15 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 16 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 17 | LOCALVARIABLE b J L0 L2 2 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCallReturn: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCallReturn.$btrace$$level : I 8 | ICONST_1 9 | IF_ICMPLT L1 10 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 11 | IFNE L1 12 | DUP2 13 | LSTORE 8 14 | LLOAD 8 15 | ALOAD 6 16 | LLOAD 4 17 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturn$args(JLjava/lang/String;J)V [ 18 | // handle kind 0x6 : INVOKESTATIC 19 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 20 | // arguments: 21 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturn" 22 | ] 23 | L1 24 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 25 | L2 26 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 27 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 28 | LOCALVARIABLE b J L0 L2 2 29 | MAXSTACK = 7 30 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCallReturnAugmented: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented.$btrace$$level : I 8 | ICONST_1 9 | IF_ICMPLT L1 10 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 11 | IFNE L1 12 | LSTORE 8 13 | ALOAD 6 14 | LLOAD 4 15 | LLOAD 8 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturnAugmented$args(Ljava/lang/String;JJ)J [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented" 21 | ] 22 | L1 23 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 24 | L2 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 27 | LOCALVARIABLE b J L0 L2 2 28 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCallReturnAugmented1: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | ALOAD 7 5 | ALOAD 6 6 | LLOAD 4 7 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented1.$btrace$$level : I 8 | ICONST_1 9 | IF_ICMPLT L1 10 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 11 | IFNE L1 12 | LSTORE 8 13 | LLOAD 8 14 | ALOAD 6 15 | LLOAD 4 16 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallReturnAugmented1$args(JLjava/lang/String;J)J [ 17 | // handle kind 0x6 : INVOKESTATIC 18 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 19 | // arguments: 20 | "org/openjdk/btrace/runtime/auxiliary/MethodCallReturnAugmented1" 21 | ] 22 | L1 23 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String resources/OnMethodTest] [J] 24 | L2 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 27 | LOCALVARIABLE b J L0 L2 2 28 | MAXLOCALS = 10 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/MethodCallStatic: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/MethodCallStatic.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L1 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L1 8 | ALOAD 0 9 | ALOAD 6 10 | LLOAD 4 11 | LDC "static long resources.OnMethodTest#callTargetStatic(java.lang.String, long)" 12 | LDC "resources.OnMethodTest" 13 | LDC "callTopLevel" 14 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$MethodCallStatic$args(Ljava/lang/Object;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 15 | // handle kind 0x6 : INVOKESTATIC 16 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 17 | // arguments: 18 | "org/openjdk/btrace/runtime/auxiliary/MethodCallStatic" 19 | ] 20 | L1 21 | FRAME FULL [resources/OnMethodTest java/lang/String J J java/lang/String] [J] 22 | ALOAD 6 23 | LLOAD 4 24 | L2 25 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L2 0 26 | LOCALVARIABLE a Ljava/lang/String; L0 L2 1 27 | LOCALVARIABLE b J L0 L2 2 28 | MAXSTACK = 9 29 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NativeWithReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NativeWithReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NativeWithoutReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NativeWithoutReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NewAfter: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/NewAfter.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L1 7 | ALOAD 0 8 | ALOAD 1 9 | LDC "java.util.HashMap" 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewAfter$args(Ljava/lang/Object;Ljava/util/Map;Ljava/lang/String;)V [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/NewAfter" 15 | ] 16 | FRAME FULL [resources/OnMethodTest java/util/HashMap] [java/util/HashMap] 17 | ASTORE 2 18 | L2 19 | LINENUMBER 106 L2 20 | L3 21 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 22 | LOCALVARIABLE m Ljava/util/Map; L2 L3 2 23 | MAXSTACK = 4 24 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NewArrayIntAfter: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/NewArrayIntAfter.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L1 7 | ALOAD 0 8 | ALOAD 1 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewArrayIntAfter$args(Ljava/lang/Object;[I)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/NewArrayIntAfter" 14 | ] 15 | FRAME FULL [resources/OnMethodTest [I] [[I] 16 | ASTORE 2 17 | L2 18 | LINENUMBER 110 L2 19 | ASTORE 3 20 | L3 21 | LINENUMBER 111 L3 22 | ASTORE 4 23 | L4 24 | LINENUMBER 112 L4 25 | ASTORE 5 26 | L5 27 | LINENUMBER 113 L5 28 | L6 29 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 30 | LOCALVARIABLE a [I L2 L6 2 31 | LOCALVARIABLE b [[I L3 L6 3 32 | LOCALVARIABLE c [Ljava/lang/String; L4 L6 4 33 | LOCALVARIABLE d [[Ljava/lang/String; L5 L6 5 34 | MAXSTACK = 3 35 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NewArrayStringAfter: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/NewArrayStringAfter.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L3 4 | DUP 5 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 6 | IFNE L3 7 | ALOAD 0 8 | ALOAD 3 9 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewArrayStringAfter$args(Ljava/lang/Object;[Ljava/lang/String;)V [ 10 | // handle kind 0x6 : INVOKESTATIC 11 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 12 | // arguments: 13 | "org/openjdk/btrace/runtime/auxiliary/NewArrayStringAfter" 14 | ] 15 | FRAME FULL [resources/OnMethodTest [I [[I [Ljava/lang/String;] [[Ljava/lang/String;] 16 | ASTORE 4 17 | L4 18 | LINENUMBER 112 L4 19 | ASTORE 5 20 | L5 21 | LINENUMBER 113 L5 22 | L6 23 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L6 0 24 | LOCALVARIABLE a [I L1 L6 1 25 | LOCALVARIABLE b [[I L2 L6 2 26 | LOCALVARIABLE c [Ljava/lang/String; L4 L6 4 27 | LOCALVARIABLE d [[Ljava/lang/String; L5 L6 5 28 | MAXSTACK = 3 29 | MAXLOCALS = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NewBefore: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/NewBefore.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | ALOAD 0 7 | LDC "java.util.HashMap" 8 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NewBefore$args(Ljava/lang/Object;Ljava/lang/String;)V [ 9 | // handle kind 0x6 : INVOKESTATIC 10 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 11 | // arguments: 12 | "org/openjdk/btrace/runtime/auxiliary/NewBefore" 13 | ] 14 | L1 15 | FRAME SAME 16 | L2 17 | LINENUMBER 106 L2 18 | L3 19 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L3 0 20 | LOCALVARIABLE m Ljava/util/Map; L2 L3 1 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/NoArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/NoArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$NoArgs$argsEmpty(Ljava/lang/Object;)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/NoArgs" 12 | ] 13 | FRAME SAME -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ALOAD 0 7 | LLOAD 1 8 | ALOAD 3 9 | ALOAD 4 10 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgs$args(Ljava/lang/String;J[Ljava/lang/String;[I)V [ 11 | // handle kind 0x6 : INVOKESTATIC 12 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 13 | // arguments: 14 | "org/openjdk/btrace/runtime/auxiliary/StaticArgs" 15 | ] 16 | FRAME SAME 17 | MAXSTACK = 5 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticArgsReturn: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticArgsReturn.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L1 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L1 6 | DUP2 7 | LSTORE 5 8 | ALOAD 0 9 | LLOAD 5 10 | LLOAD 1 11 | ALOAD 3 12 | ALOAD 4 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgsReturn$args(Ljava/lang/String;JJ[Ljava/lang/String;[I)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/StaticArgsReturn" 18 | ] 19 | L1 20 | FRAME SAME1 J 21 | L2 22 | LOCALVARIABLE a Ljava/lang/String; L0 L2 0 23 | LOCALVARIABLE b J L0 L2 1 24 | LOCALVARIABLE c [Ljava/lang/String; L0 L2 3 25 | LOCALVARIABLE d [I L0 L2 4 26 | MAXSTACK = 9 27 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticArgsSelf: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticArgsSelf.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ACONST_NULL 7 | ALOAD 0 8 | LLOAD 1 9 | ALOAD 3 10 | ALOAD 4 11 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticArgsSelf$args(Ljava/lang/Object;Ljava/lang/String;J[Ljava/lang/String;[I)V [ 12 | // handle kind 0x6 : INVOKESTATIC 13 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 14 | // arguments: 15 | "org/openjdk/btrace/runtime/auxiliary/StaticArgsSelf" 16 | ] 17 | FRAME SAME 18 | MAXSTACK = 6 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticMethodCall: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | ASTORE 7 4 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticMethodCall.$btrace$$level : I 5 | ICONST_1 6 | IF_ICMPLT L2 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L2 9 | ALOAD 6 10 | LLOAD 4 11 | ALOAD 7 12 | LDC "special long resources.OnMethodTest#callTarget(java.lang.String, long)" 13 | LDC "resources.OnMethodTest" 14 | LDC "callTopLevelStatic" 15 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticMethodCall$args(Ljava/lang/String;JLjava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 16 | // handle kind 0x6 : INVOKESTATIC 17 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 18 | // arguments: 19 | "org/openjdk/btrace/runtime/auxiliary/StaticMethodCall" 20 | ] 21 | L2 22 | FRAME FULL [java/lang/String J resources/OnMethodTest J java/lang/String resources/OnMethodTest] [J] 23 | ALOAD 7 24 | ALOAD 6 25 | LLOAD 4 26 | L3 27 | LOCALVARIABLE a Ljava/lang/String; L0 L3 0 28 | LOCALVARIABLE b J L0 L3 1 29 | LOCALVARIABLE instance Lresources/OnMethodTest; L1 L3 3 30 | MAXSTACK = 9 31 | MAXLOCALS = 8 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticMethodCallStatic: -------------------------------------------------------------------------------- 1 | LSTORE 4 2 | ASTORE 6 3 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticMethodCallStatic.$btrace$$level : I 4 | ICONST_1 5 | IF_ICMPLT L2 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 6 9 | LLOAD 4 10 | LDC "static long resources.OnMethodTest#callTargetStatic(java.lang.String, long)" 11 | LDC "resources.OnMethodTest" 12 | LDC "callTopLevelStatic" 13 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticMethodCallStatic$args(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V [ 14 | // handle kind 0x6 : INVOKESTATIC 15 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 16 | // arguments: 17 | "org/openjdk/btrace/runtime/auxiliary/StaticMethodCallStatic" 18 | ] 19 | L2 20 | FRAME APPEND [resources/OnMethodTest J java/lang/String] 21 | ALOAD 6 22 | LLOAD 4 23 | L3 24 | LOCALVARIABLE a Ljava/lang/String; L0 L3 0 25 | LOCALVARIABLE b J L0 L3 1 26 | LOCALVARIABLE instance Lresources/OnMethodTest; L1 L3 3 27 | MAXLOCALS = 7 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticNoArgs: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticNoArgs.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticNoArgs$argsEmpty()V [ 7 | // handle kind 0x6 : INVOKESTATIC 8 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 9 | // arguments: 10 | "org/openjdk/btrace/runtime/auxiliary/StaticNoArgs" 11 | ] 12 | FRAME SAME 13 | MAXSTACK = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/StaticNoArgsSelf: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/StaticNoArgsSelf.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L0 4 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 5 | IFNE L0 6 | ACONST_NULL 7 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$StaticNoArgsSelf$argsEmpty(Ljava/lang/Object;)V [ 8 | // handle kind 0x6 : INVOKESTATIC 9 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 10 | // arguments: 11 | "org/openjdk/btrace/runtime/auxiliary/StaticNoArgsSelf" 12 | ] 13 | FRAME SAME 14 | MAXSTACK = 2 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/SyncEntry: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L4 L5 L5 java/lang/Throwable 2 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/SyncEntry.$btrace$$level : I 3 | ICONST_1 4 | IF_ICMPLT L6 5 | DUP 6 | ASTORE 2 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L6 9 | ALOAD 0 10 | LDC "sync" 11 | ALOAD 2 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$SyncEntry$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/SyncEntry" 17 | ] 18 | L6 19 | FRAME FULL [resources/OnMethodTest resources/OnMethodTest resources/OnMethodTest] [resources/OnMethodTest] 20 | L7 21 | LINENUMBER 127 L7 22 | GOTO L8 23 | ASTORE 3 24 | ALOAD 3 25 | L8 26 | LINENUMBER 128 L8 27 | L5 28 | FRAME SAME1 java/lang/Throwable 29 | ATHROW 30 | LOCALVARIABLE this Lresources/OnMethodTest; L4 L5 0 31 | MAXSTACK = 4 32 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/SyncMEntry: -------------------------------------------------------------------------------- 1 | TRYCATCHBLOCK L4 L5 L5 java/lang/Throwable 2 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/SyncMEntry.$btrace$$level : I 3 | ICONST_1 4 | IF_ICMPLT L6 5 | DUP 6 | ASTORE 2 7 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 8 | IFNE L6 9 | ALOAD 0 10 | LDC "syncM" 11 | ALOAD 2 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$SyncMEntry$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/SyncMEntry" 17 | ] 18 | L6 19 | FRAME FULL [resources/OnMethodTest java/lang/Object java/lang/Object] [java/lang/Object] 20 | L7 21 | LINENUMBER 167 L7 22 | GOTO L8 23 | ASTORE 3 24 | ALOAD 3 25 | L8 26 | LINENUMBER 168 L8 27 | L5 28 | FRAME SAME1 java/lang/Throwable 29 | ATHROW 30 | LOCALVARIABLE this Lresources/OnMethodTest; L4 L5 0 31 | MAXSTACK = 4 32 | MAXLOCALS = 4 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/dynamic/onmethod/leveled/Throw: -------------------------------------------------------------------------------- 1 | GETSTATIC org/openjdk/btrace/runtime/auxiliary/Throw.$btrace$$level : I 2 | ICONST_1 3 | IF_ICMPLT L2 4 | DUP 5 | ASTORE 1 6 | INVOKESTATIC org/openjdk/btrace/runtime/LinkingFlag.get ()I 7 | IFNE L2 8 | ALOAD 0 9 | LDC "resources.OnMethodTest" 10 | LDC "exception" 11 | ALOAD 1 12 | INVOKEDYNAMIC $btrace$org$openjdk$btrace$runtime$auxiliary$Throw$args(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V [ 13 | // handle kind 0x6 : INVOKESTATIC 14 | org/openjdk/btrace/runtime/Indy.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite; 15 | // arguments: 16 | "org/openjdk/btrace/runtime/auxiliary/Throw" 17 | ] 18 | L2 19 | FRAME FULL [resources/OnMethodTest java/io/IOException] [java/io/IOException] 20 | FRAME FULL [resources/OnMethodTest] [java/io/IOException] 21 | ASTORE 2 22 | L3 23 | LINENUMBER 85 L3 24 | ALOAD 2 25 | L4 26 | LINENUMBER 87 L4 27 | L5 28 | LOCALVARIABLE e Ljava/io/IOException; L3 L4 2 29 | LOCALVARIABLE this Lresources/OnMethodTest; L0 L5 0 30 | MAXSTACK = 5 31 | MAXLOCALS = 3 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/OnProbeTest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/OnProbeTest -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/OnTimerTest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/OnTimerTest -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/issues/BTRACE189: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/issues/BTRACE189 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/issues/BTRACE_333: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/issues/BTRACE_333 -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsDurationBoxed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsDurationBoxed -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsDurationBoxedErr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsDurationBoxedErr -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsReturnTypeNoMatch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/ArgsReturnTypeNoMatch -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/NativeWithReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/NativeWithReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/NativeWithoutReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/NativeWithoutReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/ArgsDurationBoxed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/ArgsDurationBoxed -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/ArgsDurationBoxedErr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/ArgsDurationBoxedErr -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/MatchDerived: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/MatchDerived -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/NativeWithReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/NativeWithReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/NativeWithoutReturn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/instrumentorTestData/static/onmethod/leveled/NativeWithoutReturn -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/packed/test-pack.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/packed/test-pack.jar -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/plain.txt: -------------------------------------------------------------------------------- 1 | This is a text file -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/AllStuff.btrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/AllStuff.btrc -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/BackpackExtensionTest.clazz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/BackpackExtensionTest.clazz -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/OnMethodTest.btrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/OnMethodTest.btrc -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/PackVersion1.btrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/PackVersion1.btrc -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/ProbeScript.btrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/ProbeScript.btrc -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/TezSplitter.clazz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/TezSplitter.clazz -------------------------------------------------------------------------------- /btrace-instr/src/test/resources/resources/classdata/TraceScript.clazz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btrace-instr/src/test/resources/resources/classdata/TraceScript.clazz -------------------------------------------------------------------------------- /btrace-runtime/src/main/java/org/openjdk/btrace/runtime/BTraceRuntimeImplFactory.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.runtime; 2 | 3 | import java.lang.instrument.Instrumentation; 4 | import org.openjdk.btrace.core.ArgsMap; 5 | import org.openjdk.btrace.core.BTraceRuntime; 6 | import org.openjdk.btrace.core.comm.CommandListener; 7 | 8 | public abstract class BTraceRuntimeImplFactory { 9 | private final T defaultRuntime; 10 | 11 | protected BTraceRuntimeImplFactory(T defaultRuntime) { 12 | this.defaultRuntime = defaultRuntime; 13 | } 14 | 15 | public final T getDefault() { 16 | return defaultRuntime; 17 | } 18 | 19 | public abstract T getRuntime( 20 | String className, ArgsMap args, CommandListener cmdListener, Instrumentation inst); 21 | 22 | public abstract boolean isEnabled(); 23 | } 24 | -------------------------------------------------------------------------------- /btrace-runtime/src/main/java/org/openjdk/btrace/runtime/DotWriterFormatter.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.runtime; 2 | 3 | class DotWriterFormatter { 4 | // Maximum number of string characters displayed. 5 | private int stringLimit = 32; 6 | 7 | DotWriterFormatter() {} 8 | 9 | // Set maximum number of string characters displayed. 10 | void stringLimit(int stringLimit) { 11 | this.stringLimit = stringLimit; 12 | } 13 | 14 | // Formats a string value, truncating if needed. 15 | String formatString(String string, String quote) { 16 | boolean isLong = string.length() > stringLimit; 17 | if (isLong) string = string.substring(0, stringLimit - 1); 18 | string = quote + string + quote; 19 | if (isLong) string += "..."; 20 | return string; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /btrace-runtime/src/main/java/org/openjdk/btrace/runtime/LinkingFlag.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.runtime; 2 | 3 | public final class LinkingFlag { 4 | private static final ThreadLocal linking = new ThreadLocal<>(); 5 | 6 | public static int guardLinking() { 7 | Integer current = linking.get(); 8 | current = current == null ? 0 : current; 9 | linking.set(current + 1); 10 | return current; 11 | } 12 | 13 | public static int get() { 14 | Integer current = linking.get(); 15 | return current == null ? 0 : current; 16 | } 17 | 18 | public static void reset() { 19 | Integer current = linking.get(); 20 | current = current == null ? 0 : current; 21 | linking.set(current > 0 ? current - 1 : 0); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /btrace-runtime/src/main/java/org/openjdk/btrace/runtime/auxiliary/Auxiliary.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.runtime.auxiliary; 2 | 3 | public final class Auxiliary {} 4 | -------------------------------------------------------------------------------- /btrace-services-api/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':btrace-core') 3 | } -------------------------------------------------------------------------------- /btrace-services-api/src/main/java/org/openjdk/btrace/services/api/RuntimeContext.java: -------------------------------------------------------------------------------- 1 | package org.openjdk.btrace.services.api; 2 | 3 | import org.openjdk.btrace.core.comm.Command; 4 | 5 | public interface RuntimeContext { 6 | void send(String msg); 7 | 8 | void send(Command message); 9 | } 10 | -------------------------------------------------------------------------------- /btrace-services/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':btrace-core') 3 | implementation project(':btrace-services-api') 4 | } 5 | -------------------------------------------------------------------------------- /btrace-statsd/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':btrace-core') 3 | implementation project(':btrace-services-api') 4 | } -------------------------------------------------------------------------------- /btrace-ui/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { scriptHandler -> 2 | apply from: rootProject.file('buildSrc/shared.gradle'), to: scriptHandler 3 | } 4 | 5 | plugins { 6 | alias(libs.plugins.versioning) 7 | } 8 | 9 | sourceCompatibility = '11' 10 | targetCompatibility = '11' 11 | 12 | dependencies { 13 | implementation project(':btrace-core') 14 | implementation project(':btrace-compiler') 15 | implementation project(':btrace-instr') 16 | } 17 | 18 | jar { 19 | manifest { 20 | attributes( 21 | 'Built-By' : System.properties['user.name'], 22 | 'Build-Timestamp': new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(new Date()), 23 | 'Build-Revision' : versioning.info.commit, 24 | 'Created-By' : "Gradle ${gradle.gradleVersion}", 25 | 'Build-Jdk' : "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})", 26 | 'Build-OS' : "${System.properties['os.name']} ${System.properties['os.arch']} ${System.properties['os.version']}", 27 | 'Main-Class' : "org.openjdk.btrace.client.Main" 28 | ) 29 | } 30 | } -------------------------------------------------------------------------------- /btraceio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btraceio.png -------------------------------------------------------------------------------- /btraceio_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/btraceio_small.png -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "jacoco" 3 | alias(libs.plugins.spotless) 4 | } 5 | 6 | repositories { 7 | mavenCentral() 8 | } 9 | 10 | subprojects { 11 | apply from: rootProject.file('common.gradle') 12 | } 13 | 14 | task mergedJavadoc(type: Javadoc, description: 'Creates Javadoc from all the projects.') { 15 | title = 'All modules' 16 | destinationDir = new File(project.buildDir, 'merged-javadoc') 17 | 18 | // Note: The closures below are executed lazily. 19 | source { 20 | subprojects*.sourceSets*.main*.allSource 21 | } 22 | classpath.from { 23 | subprojects*.configurations*.compile*.copyRecursive({ !(it instanceof ProjectDependency) })*.resolve() 24 | } 25 | } 26 | 27 | spotless { 28 | java { 29 | target 'src/*/java/**/*.java' 30 | // note: you can use an empty string for all the imports you didn't specify explicitly, and '\\#` prefix for static imports 31 | importOrder('java', 'javax', 'org.openjdk.btrace', '', '\\#org.openjdk.btrace', '\\#') 32 | removeUnusedImports() 33 | 34 | googleJavaFormat() // has its own section below 35 | 36 | formatAnnotations() // fixes formatting of type annotations, see below 37 | 38 | licenseHeader '/* (C) $YEAR */' // or licenseHeaderFile 39 | } 40 | } -------------------------------------------------------------------------------- /buildSrc/shared.gradle: -------------------------------------------------------------------------------- 1 | configurations.all { 2 | resolutionStrategy.eachDependency { details -> 3 | if (details.requested.group == 'org.ajoberstar.grgit' && 4 | details.requested.name == 'grgit-core' && 5 | details.requested.version == '4.0.1') { 6 | details.useVersion '4.1.1' 7 | details.because '4.0.1 has been removed' 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /docs/releasing.md: -------------------------------------------------------------------------------- 1 | # Releasing BTrace 2 | 3 | Release process is very simple: 4 | 1. Create branch `release/v` 5 | 2. On that branch make sure all references to previous version or the current **SNAPSHOT** version are replaced with 6 | the version being released 7 | 3. Commit the changes with message like `Preparing BTrace ` 8 | 4. Tag the branch with `v` - this will initiate the automated release process in GHA 9 | 5. Check the 'pre-release' page and once satisfied with the release notes, make the release to be the latest one 10 | 6. Head to [OSSRH](https://oss.sonatype.org/) and finish the maven artifacts release for the current staging repo -------------------------------------------------------------------------------- /gradle/spotless.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.diffplug.spotless' 2 | 3 | spotless { 4 | java { 5 | target 'src/*/java/**/*.java' 6 | // note: you can use an empty string for all the imports you didn't specify explicitly, and '\\#` prefix for static imports 7 | importOrder('java', 'javax', 'org.openjdk.btrace', '', '\\#org.openjdk.btrace', '\\#') 8 | removeUnusedImports() 9 | 10 | googleJavaFormat() // has its own section below 11 | 12 | formatAnnotations() // fixes formatting of type annotations, see below 13 | 14 | // licenseHeader '/* (C) $YEAR */' // or licenseHeaderFile 15 | } 16 | } 17 | 18 | tasks.register('formatCode') { 19 | dependsOn 'spotlessApply' 20 | } 21 | check.configure { 22 | dependsOn 'spotlessCheck' 23 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btraceio/btrace/b4a8f221de7cd252a69c92b7a3b775c2b556277e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /integration-tests/src/main/java/dummy/SimpleEvent.java: -------------------------------------------------------------------------------- 1 | package dummy; 2 | 3 | import jdk.jfr.Category; 4 | import jdk.jfr.Enabled; 5 | import jdk.jfr.Event; 6 | import jdk.jfr.Label; 7 | import jdk.jfr.Name; 8 | import jdk.jfr.Registered; 9 | 10 | @Label("Simple Event") 11 | @Registered 12 | @Enabled 13 | @Category("BTrace") 14 | @Name("btrace.SimpleEvent") 15 | public class SimpleEvent extends Event { 16 | @Label("value") 17 | private long value; 18 | 19 | public SimpleEvent() {} 20 | 21 | public long getValue() { 22 | return value; 23 | } 24 | 25 | public void setValue(long value) { 26 | this.value = value; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /integration-tests/src/main/java/dummy/SimplePeriodicEvent.java: -------------------------------------------------------------------------------- 1 | package dummy; 2 | 3 | import jdk.jfr.Category; 4 | import jdk.jfr.Enabled; 5 | import jdk.jfr.Event; 6 | import jdk.jfr.Label; 7 | import jdk.jfr.Period; 8 | 9 | @Label("Simple periodic event") 10 | @Period("everyChunk") 11 | @Category("BTrace") 12 | @Enabled 13 | public class SimplePeriodicEvent extends Event { 14 | @Label("value") 15 | private int value; 16 | 17 | public SimplePeriodicEvent() {} 18 | 19 | public void setValue(int value) { 20 | this.value = value; 21 | } 22 | 23 | public int getValue() { 24 | return value; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /integration-tests/src/test/btrace/issues/BTRACE400.java: -------------------------------------------------------------------------------- 1 | package traces.issues; 2 | 3 | import static org.openjdk.btrace.core.BTraceUtils.*; 4 | 5 | import org.openjdk.btrace.core.annotations.BTrace; 6 | import org.openjdk.btrace.core.annotations.Kind; 7 | import org.openjdk.btrace.core.annotations.Location; 8 | import org.openjdk.btrace.core.annotations.OnMethod; 9 | import org.openjdk.btrace.core.annotations.Self; 10 | 11 | /** @author Jaroslav Bachorik */ 12 | @BTrace 13 | public class BTRACE400 { 14 | @OnMethod(clazz = "/.*\\.Main/", method = "callA", location = @Location(value = Kind.RETURN)) 15 | public static void tracker(@Self Object x) { 16 | println(str(field("resources.Main", "id"))); 17 | println(str(probeClass())); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/src/test/java/resources/ThreadSpawner.java: -------------------------------------------------------------------------------- 1 | package resources; 2 | 3 | public class ThreadSpawner extends TestApp { 4 | public static void main(String[] args) throws Exception { 5 | ThreadSpawner i = new ThreadSpawner(); 6 | i.start(); 7 | } 8 | @Override 9 | protected void startWork() { 10 | while (!Thread.currentThread().isInterrupted()) { 11 | try { 12 | spawnThread(); 13 | Thread.sleep(200); 14 | } catch (InterruptedException e) { 15 | Thread.currentThread().interrupt(); 16 | } 17 | } 18 | } 19 | 20 | private void spawnThread() throws InterruptedException { 21 | Thread t = new Thread( () -> print("thread started")); 22 | t.setName("testThread"); 23 | t.start(); 24 | t.join(); 25 | } 26 | 27 | @Override 28 | public void print(String msg) { 29 | System.out.println(msg); 30 | System.out.flush(); 31 | } 32 | } -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /run_tests.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | set -e 4 | 5 | export JAVA_HOME=$JAVA_8_HOME 6 | echo "Building BTrace binary artifacts" 7 | ./gradlew -x test :btrace-dist:build 8 | 9 | mkdir -p build/reports 10 | for VERSION in 8 11 17 18 19 20; do 11 | declare home_string=JAVA_${VERSION}_HOME 12 | if [ -z "${!home_string}" ]; then 13 | echo "Skipping test for Java ${VERSINO}" 14 | continue 15 | fi 16 | echo "Running tests with TEST_JAVA_HOME=${!home_string}" 17 | TEST_JAVA_HOME=${!home_string} BTRACE_TEST_DEBUG="false" ./gradlew -Pintegration test | tee -a build/reports/test_java_$VERSION.out || true 18 | done 19 | --------------------------------------------------------------------------------