public static void startMethod(String methodName, String argNames, Object... args) {
		Stack<Frame> stack;
		synchronized (state) {
			stack = state.get(Thread.currentThread());
			if (stack == null) {
				state.put(Thread.currentThread(), stack = new Stack<Frame>());
			}
		}
		stack.push(new Frame(methodName, argNames, args));
		if (snapShotMaker.mayTakeSnapshot()) {
			takeSnapshot();
		}
	}