2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 package gov.nasa.jpf.vm;
22 * NOTE - making VMStates fully restorable is currently very
23 * expensive and should only be done on a selective basis
25 public class RestorableVMState {
27 /** the set of last executed insns */
28 Transition lastTransition;
30 /* these are the icky parts - the history is kept as stacks inside the
31 * VM (for restoration reasons), hence we have to copy it if we want
32 * to restore a state. Since this is really expensive, it has to be done
33 * on demand, with varying degrees of information
37 Backtracker.RestorableState bkstate;
41 RestorableVMState (VM vm) {
44 path = vm.getClonedPath();
45 bkstate = vm.getBacktracker().getRestorableState();
46 lastTransition = vm.lastTrailInfo;
49 public Backtracker.RestorableState getBkState() {
53 public Transition getLastTransition () {
54 return lastTransition;
57 public Path getPath () {
61 public int getThread () {
62 return lastTransition.getThreadIndex();