< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/InterpretedVFrame.java

Print this page

 96       if (oopMask.isOop(i + nofLocals)) {
 97         // oop value
 98         sv = new StackValue(addr.getOopHandleAt(0), 0);
 99       } else {
100         // integer
101         // Fetch a signed integer the size of a stack slot
102         sv = new StackValue(addr.getCIntegerAt(0, VM.getVM().getAddressSize(), false));
103       }
104       result.add(sv);
105     }
106 
107     return result;
108   }
109 
110   /** Returns List<MonitorInfo> */
111   public List<MonitorInfo> getMonitors() {
112     List<MonitorInfo> result = new ArrayList<>(5);
113     for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd();
114          current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address());
115          current = getFrame().nextMonitorInInterpreterFrame(current)) {
116       result.add(new MonitorInfo(current.obj(), current.lock(), false, false));
117     }
118     return result;
119   }
120 
121   /** Test operation */
122   public boolean isInterpretedFrame() { return true; }
123 
124   /** Package-internal constructor */
125   InterpretedVFrame(Frame fr, RegisterMap regMap, JavaThread thread) {
126     super(fr, regMap, thread);
127   }
128 
129   /** Accessor for Byte Code Index (NOTE: access to BCP is not allowed
130       in this system; see Frame.java) */
131   public int getBCI() {
132     return getFrame().getInterpreterFrameBCI();
133   }
134 
135   /** Setter for Byte Code Index */
136   // FIXME: not yet implementable

 96       if (oopMask.isOop(i + nofLocals)) {
 97         // oop value
 98         sv = new StackValue(addr.getOopHandleAt(0), 0);
 99       } else {
100         // integer
101         // Fetch a signed integer the size of a stack slot
102         sv = new StackValue(addr.getCIntegerAt(0, VM.getVM().getAddressSize(), false));
103       }
104       result.add(sv);
105     }
106 
107     return result;
108   }
109 
110   /** Returns List<MonitorInfo> */
111   public List<MonitorInfo> getMonitors() {
112     List<MonitorInfo> result = new ArrayList<>(5);
113     for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd();
114          current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address());
115          current = getFrame().nextMonitorInInterpreterFrame(current)) {
116       result.add(new MonitorInfo(current.obj(), false, false));
117     }
118     return result;
119   }
120 
121   /** Test operation */
122   public boolean isInterpretedFrame() { return true; }
123 
124   /** Package-internal constructor */
125   InterpretedVFrame(Frame fr, RegisterMap regMap, JavaThread thread) {
126     super(fr, regMap, thread);
127   }
128 
129   /** Accessor for Byte Code Index (NOTE: access to BCP is not allowed
130       in this system; see Frame.java) */
131   public int getBCI() {
132     return getFrame().getInterpreterFrameBCI();
133   }
134 
135   /** Setter for Byte Code Index */
136   // FIXME: not yet implementable
< prev index next >