Save This Page
Home » openjdk-7 » sun.jvm » hotspot » runtime » amd64 » [javadoc | source]
    1   /*
    2    * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.
    8    *
    9    * This code is distributed in the hope that it will be useful, but WITHOUT
   10    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   11    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   12    * version 2 for more details (a copy is included in the LICENSE file that
   13    * accompanied this code).
   14    *
   15    * You should have received a copy of the GNU General Public License version
   16    * 2 along with this work; if not, write to the Free Software Foundation,
   17    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   18    *
   19    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   20    * or visit www.oracle.com if you need additional information or have any
   21    * questions.
   22    *
   23    */
   24   
   25   package sun.jvm.hotspot.runtime.amd64;
   26   
   27   import java.util;
   28   import sun.jvm.hotspot.debugger;
   29   import sun.jvm.hotspot.types;
   30   import sun.jvm.hotspot.runtime;
   31   
   32   public class AMD64JavaCallWrapper extends JavaCallWrapper {
   33     private static AddressField lastJavaFPField;
   34   
   35     static {
   36       VM.registerVMInitializedObserver(new Observer() {
   37           public void update(Observable o, Object data) {
   38             initialize(VM.getVM().getTypeDataBase());
   39           }
   40         });
   41     }
   42   
   43     private static synchronized void initialize(TypeDataBase db) {
   44       Type type = db.lookupType("JavaFrameAnchor");
   45   
   46       lastJavaFPField  = type.getAddressField("_last_Java_fp");
   47     }
   48   
   49     public AMD64JavaCallWrapper(Address addr) {
   50       super(addr);
   51     }
   52   
   53     public Address getLastJavaFP() {
   54       return lastJavaFPField.getValue(addr.addOffsetTo(anchorField.getOffset()));
   55     }
   56   }

Save This Page
Home » openjdk-7 » sun.jvm » hotspot » runtime » amd64 » [javadoc | source]