jdk/src/share/classes/com/sun/jdi/StackFrame.java
author duke
Sat, 01 Dec 2007 00:00:00 +0000
changeset 2 90ce3da70b43
child 5506 202f599c92aa
permissions -rw-r--r--
Initial load
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
/*
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
 * Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Sun designates this
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
 * by Sun in the LICENSE file that accompanied this code.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
 * CA 95054 USA or visit www.sun.com if you need additional information or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
 * have any questions.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
package com.sun.jdi;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
import java.util.List;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
import java.util.Map;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
/**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
 * The state of one method invocation on a thread's call stack.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
 * As a thread executes, stack frames are pushed and popped from
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
 * its call stack as methods are invoked and then return. A StackFrame
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
 * mirrors one such frame from a target VM at some point in its
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
 * thread's execution. The call stack is, then, simply a List of
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
 * StackFrame objects. The call stack can be obtained any time a thread
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
 * is suspended through a call to {@link ThreadReference#frames}
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
 * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
 * StackFrames provide access to a method's local variables and their
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
 * current values.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
 * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
 * The lifetime of a StackFrame is very limited. It is available only
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
 * for suspended threads and becomes invalid once its thread is resumed.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
 * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
 * Any method on <code>StackFrame</code> which
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
 * takes <code>StackFrame</code> as an parameter may throw
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
 * {@link com.sun.jdi.VMDisconnectedException} if the target VM is
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
 * disconnected and the {@link com.sun.jdi.event.VMDisconnectEvent} has been or is
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
 * available to be read from the {@link com.sun.jdi.event.EventQueue}.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
 * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
 * Any method on <code>StackFrame</code> which
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
 * takes <code>StackFrame</code> as an parameter may throw
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
 * {@link com.sun.jdi.VMOutOfMemoryException} if the target VM has run out of memory.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
 * @author Robert Field
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
 * @author Gordon Hirsch
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
 * @author James McIlree
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
 * @since  1.3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
public interface StackFrame extends Mirror, Locatable
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
{
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
     * Returns the {@link Location} of the current instruction in the frame.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
     * The method for which this frame was created can also be accessed
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
     * through the returned location.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
     * For the top frame in the stack, this location identifies the
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
     * next instruction to be executed. For all other frames, this
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
     * location identifies the instruction that caused the next frame's
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
     * method to be invoked.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
     * If the frame represents a native method invocation, the returned
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
     * location indicates the class and method, but the code index will
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
     * not be valid (-1).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
     * @return the {@link Location} of the current instruction.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
    Location location();
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
     * Returns the thread under which this frame's method is running.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
     * @return a {@link ThreadReference} which mirrors the frame's thread.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
    ThreadReference thread();
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
     * Returns the value of 'this' for the current frame.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
     * The {@link ObjectReference} for 'this' is only available for
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
     * non-native instance methods.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
     * @return an {@link ObjectReference}, or null if the frame represents
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
     * a native or static method.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
    ObjectReference thisObject();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
     * Returns a list containing each {@link LocalVariable}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
     * that can be accessed from this frame's location.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
     * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
     * Visibility is based on the code index of the current instruction of
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
     * this StackFrame. Each variable has a range of byte code indices in which
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
     * it is accessible.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
     * If this stack frame's method
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
     * matches this variable's method and if the code index of this
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
     * StackFrame is within the variable's byte code range, the variable is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
     * visible.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
     * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
     * A variable's byte code range is at least as large as the scope of
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
     * that variable, but can continue beyond the end of the scope under
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
     * certain circumstances:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
     * <ul>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
     * <li>the compiler/VM does not immediately reuse the variable's slot.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
     * <li>the compiler/VM is implemented to report the extended range that
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
     * would result from the item above.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
     * </ul>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
     * The advantage of an extended range is that variables from recently
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
     * exited scopes may remain available for examination (this is especially
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
     * useful for loop indices). If, as a result of the extensions above,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
     * the current frame location is contained within the range
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
     * of multiple local variables of the same name, the variable with the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
     * highest-starting range is chosen for the returned list.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
     * @return the list of {@link LocalVariable} objects currently visible;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
     * the list will be empty if there are no visible variables;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
     * specifically, frames in native methods will always return a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
     * zero-length list.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
     * @throws AbsentInformationException if there is no local variable
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
     * information for this method.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
     * @throws NativeMethodException if the current method is native.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
    List<LocalVariable> visibleVariables() throws AbsentInformationException;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
     * Finds a {@link LocalVariable} that matches the given name and is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
     * visible at the current frame location.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
     * See {@link #visibleVariables} for more information on visibility.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
     * @param name the variable name to find
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
     * @return the matching {@link LocalVariable}, or null if there is no
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
     * visible variable with the given name; frames in native methods
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
     * will always return null.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
     * @throws AbsentInformationException if there is no local variable
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
     * information for this method.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
     * @throws NativeMethodException if the current method is native.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
    LocalVariable visibleVariableByName(String name) throws AbsentInformationException;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
     * Gets the {@link Value} of a {@link LocalVariable} in this frame.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
     * The variable must be valid for this frame's method and visible
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
     * according to the rules described in {@link #visibleVariables}.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
     * @param variable the {@link LocalVariable} to be accessed
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
     * @return the {@link Value} of the instance field.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
     * @throws java.lang.IllegalArgumentException if the variable is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
     * either invalid for this frame's method or not visible.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
    Value getValue(LocalVariable variable);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
     * Returns the values of multiple local variables in this frame.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
     * Each variable must be valid for this frame's method and visible
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
     * according to the rules described in {@link #visibleVariables}.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
     * @param variables a list of {@link LocalVariable} objects to be accessed
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
     * @return a map associating each {@link LocalVariable} with
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
     * its {@link Value}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
     * @throws java.lang.IllegalArgumentException if any variable is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
     * either invalid for this frame's method or not visible.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
    Map<LocalVariable,Value> getValues(List<? extends LocalVariable> variables);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
     * Sets the {@link Value} of a {@link LocalVariable} in this frame.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
     * The variable must be valid for this frame's method and visible
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
     * according to the rules described in {@link #visibleVariables}.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
     * <p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
     * Object values must be assignment compatible with the variable type
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
     * (This implies that the variable type must be loaded through the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
     * enclosing class's class loader). Primitive values must be
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
     * either assignment compatible with the variable type or must be
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
     * convertible to the variable type without loss of information.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
     * See JLS section 5.2 for more information on assignment
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
     * compatibility.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
     * @param variable the field containing the requested value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
     * @param value the new value to assign
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
     * @throws java.lang.IllegalArgumentException if the field is not valid for
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
     * this object's class.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
     * @throws InvalidTypeException if the value's type does not match
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
     * the variable's type.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
     * @throws ClassNotLoadedException if the variable type has not yet been loaded
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
     * through the appropriate class loader.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
     * @throws VMCannotBeModifiedException if the VirtualMachine is read-only - see {@link VirtualMachine#canBeModified()}.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
    void setValue(LocalVariable variable, Value value)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
        throws InvalidTypeException, ClassNotLoadedException;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
    /**
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
     * Returns the values of all arguments in this frame.  Values are
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
     * returned even if no local variable information is present.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
     * @return a list containing a {@link Value} object for each argument
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
     * to this frame, in the order in which the arguments were
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
     * declared.  If the method corresponding to this frame has
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
     * no arguments, an empty list is returned.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
     *
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
     * @throws InvalidStackFrameException if this stack frame has become
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
     * invalid. Once the frame's thread is resumed, the stack frame is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
     * no longer valid.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
     * @since 1.6
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
     */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
    List<Value> getArgumentValues();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
}