@TraceMethod(display = "Invoke method (no args)")
	public void execute_method(
			@Param(
				schema = "Method",
				description = "Method",
				display = "Method",
				name = "method") RmiTraceObject obj,
			@Param(
				description = "Instance Pattern",
				display = "InstancePattern",
				name = "instance_pattern") String instancePattern,
			@Param(
				description = "Thread Name",
				display = "ThreadName",
				name = "thread_name") String threadName) {
		VirtualMachine vm = connector.getJdi().getCurrentVM();
		String path = obj.getPath();
		Method method = (Method) getObjectFromPath(path);
		ReferenceType declaringType = method.declaringType();
		List<ObjectReference> instances = declaringType.instances(0);
		for (ObjectReference ref : instances) {
			if (ref.toString().contains(instancePattern)) {
				for (ThreadReference thread : vm.allThreads()) {
					if (thread.name().equals(threadName)) {
						cmds.execute(ref, thread, method, new ArrayList<Value>(), 0);
					}
				}
			}
		}
	}
NB: For the VirtualMachine, the step methods add requests for break-on-step for all threads.
These requests will remain pending until the VM is resumed.
Ghidra/Debug/Debugger-jpda/src/main/java/ghidra/dbg/jdi/rmi/jpda/JdiMethods.java