hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java
changeset 13909 9b94bf4dcc0c
parent 13908 6fa036b39eb9
parent 13907 52873e4bbeaa
child 13911 e59cfb5f223b
equal deleted inserted replaced
13908:6fa036b39eb9 13909:9b94bf4dcc0c
     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.ia64;
       
    26 
       
    27 import sun.jvm.hotspot.debugger.*;
       
    28 import sun.jvm.hotspot.debugger.ia64.*;
       
    29 import sun.jvm.hotspot.code.*;
       
    30 import sun.jvm.hotspot.interpreter.*;
       
    31 import sun.jvm.hotspot.runtime.*;
       
    32 
       
    33 /** <P> Should be able to be used on all ia64 platforms we support
       
    34     (Win32, Linux) to implement JavaThread's
       
    35     "currentFrameGuess()" functionality. Input is an IA64ThreadContext;
       
    36     output is SP, FP, and PC for an IA64Frame. Instantiation of the
       
    37     IA64Frame is left to the caller, since we may need to subclass
       
    38     IA64Frame to support signal handler frames on Unix platforms. </P>
       
    39 
       
    40     <P> This is pretty much impossible on ia64.
       
    41     </P> */
       
    42 
       
    43 public class IA64CurrentFrameGuess {
       
    44   private IA64ThreadContext context;
       
    45   private JavaThread       thread;
       
    46   private Address          spFound;
       
    47   private Address          fpFound;
       
    48   private Address          pcFound;
       
    49 
       
    50   private static final boolean DEBUG = false;
       
    51 
       
    52   public IA64CurrentFrameGuess(IA64ThreadContext context,
       
    53                               JavaThread thread) {
       
    54     this.context = context;
       
    55     this.thread  = thread;
       
    56   }
       
    57 
       
    58   /** Returns false if not able to find a frame within a reasonable range. */
       
    59   public boolean run(long regionInBytesToSearch) {
       
    60     /*
       
    61       Without using the stack walking library this is not possible on ia64.
       
    62       There is also the issue of walking dynamic code where there is no
       
    63       stack walking info generated.
       
    64     */
       
    65     return false;
       
    66   }
       
    67 
       
    68   public Address getSP() { return null; }
       
    69   public Address getFP() { return null; }
       
    70   /** May be null if getting values from thread-local storage; take
       
    71       care to call the correct IA64Frame constructor to recover this if
       
    72       necessary */
       
    73   public Address getPC() { return null; }
       
    74 
       
    75   private void setValues(Address sp, Address fp, Address pc) {
       
    76     spFound = sp;
       
    77     fpFound = fp;
       
    78     pcFound = pc;
       
    79   }
       
    80 }