开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

gwdcode/JDK11.0.2-lib.src.java.base.java

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
jdk11.0.2lib.src.java.base.java
/
lang
/
LiveStackFrame.java
jdk11.0.2lib.src.java.base.java
/
lang
/
LiveStackFrame.java
LiveStackFrame.java 6.33 KB
一键复制 编辑 原始数据 按行查看 历史
gwdcode 提交于 2020年10月30日 22:13 +08:00 . 常用普通java包(jdk11.0.2)
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.lang;
import java.lang.StackWalker.StackFrame;
import java.util.EnumSet;
import java.util.Set;
import static java.lang.StackWalker.ExtendedOption.LOCALS_AND_OPERANDS;
/**
* <em>UNSUPPORTED</em> This interface is intended to be package-private
* or move to an internal package.<p>
*
* {@code LiveStackFrame} represents a frame storing data and partial results.
* Each frame has its own array of local variables (JVMS section 2.6.1),
* its own operand stack (JVMS section 2.6.2) for a method invocation.
*
* @jvms 2.6 Frames
*/
/* package-private */
interface LiveStackFrame extends StackFrame {
/**
* Return the monitors held by this stack frame. This method returns
* an empty array if no monitor is held by this stack frame.
*
* @return the monitors held by this stack frames
*/
public Object[] getMonitors();
/**
* Gets the local variable array of this stack frame.
*
* <p>A single local variable can hold a value of type boolean, byte, char,
* short, int, float, reference or returnAddress. A pair of local variables
* can hold a value of type long or double (JVMS section 2.6.1). Primitive
* locals are represented in the returned array as {@code PrimitiveSlot}s,
* with longs and doubles occupying a pair of consecutive
* {@code PrimitiveSlot}s.
*
* <p>The current VM implementation does not provide specific type
* information for primitive locals. This method simply returns the raw
* contents of the VM's primitive locals on a best-effort basis, without
* indicating a specific type.
*
* <p>The returned array may contain null entries for local variables that
* are not live.
*
* @implNote
* <p> The specific subclass of {@code PrimitiveSlot} will reflect the
* underlying architecture, and will be either {@code PrimitiveSlot32} or
* {@code PrimitiveSlot64}.
*
* <p>How a long or double value is stored in the pair of
* {@code PrimitiveSlot}s can vary based on the underlying architecture and
* VM implementation. On 32-bit architectures, long/double values are split
* between the two {@code PrimitiveSlot32}s.
* On 64-bit architectures, the entire value may be stored in one of the
* {@code PrimitiveSlot64}s, with the other {@code PrimitiveSlot64} being
* unused.
*
* <p>The contents of the unused, high-order portion of a
* {@code PrimitiveSlot64} (when storing a primitive other than a long or
* double) is unspecified. In particular, the unused bits are not
* necessarily zeroed out.
*
* @return the local variable array of this stack frame.
*/
public Object[] getLocals();
/**
* Gets the operand stack of this stack frame.
*
* <p>
* The 0-th element of the returned array represents the top of the operand stack.
* This method returns an empty array if the operand stack is empty.
*
* <p>Each entry on the operand stack can hold a value of any Java Virtual
* Machine Type.
* For a value of primitive type, the element in the returned array is
* a {@link PrimitiveSlot} object; otherwise, the element is the {@code Object}
* on the operand stack.
*
* @return the operand stack of this stack frame.
*/
public Object[] getStack();
/**
* <em>UNSUPPORTED</em> This interface is intended to be package-private
* or moved to an internal package.<p>
*
* Represents a local variable or an entry on the operand stack whose value is
* of primitive type.
*/
public abstract class PrimitiveSlot {
/**
* Returns the size, in bytes, of the slot.
*/
public abstract int size();
/**
* Returns the int value if this primitive value is of size 4
* @return the int value if this primitive value is of size 4
*
* @throws UnsupportedOperationException if this primitive value is not
* of size 4.
*/
public int intValue() {
throw new UnsupportedOperationException("this " + size() + "-byte primitive");
}
/**
* Returns the long value if this primitive value is of size 8
* @return the long value if this primitive value is of size 8
*
* @throws UnsupportedOperationException if this primitive value is not
* of size 8.
*/
public long longValue() {
throw new UnsupportedOperationException("this " + size() + "-byte primitive");
}
}
/**
* Gets {@code StackWalker} that can get locals and operands.
*
* @throws SecurityException if the security manager is present and
* denies access to {@code RuntimePermission("liveStackFrames")}
*/
public static StackWalker getStackWalker() {
return getStackWalker(EnumSet.noneOf(StackWalker.Option.class));
}
/**
* Gets a {@code StackWalker} instance with the given options specifying
* the stack frame information it can access, and which will traverse at most
* the given {@code maxDepth} number of stack frames. If no option is
* specified, this {@code StackWalker} obtains the method name and
* the class name with all
* {@linkplain StackWalker.Option#SHOW_HIDDEN_FRAMES hidden frames} skipped.
* The returned {@code StackWalker} can get locals and operands.
*
* @param options stack walk {@link StackWalker.Option options}
*
* @throws SecurityException if the security manager is present and
* it denies access to {@code RuntimePermission("liveStackFrames")}; or
* or if the given {@code options} contains
* {@link StackWalker.Option#RETAIN_CLASS_REFERENCE Option.RETAIN_CLASS_REFERENCE}
* and it denies access to {@code RuntimePermission("getStackWalkerWithClassReference")}.
*/
public static StackWalker getStackWalker(Set<StackWalker.Option> options) {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
sm.checkPermission(new RuntimePermission("liveStackFrames"));
}
return StackWalker.newInstance(options, LOCALS_AND_OPERANDS);
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gwdcode/jdk11.0.2lib.src.java.base.java.git
git@gitee.com:gwdcode/jdk11.0.2lib.src.java.base.java.git
gwdcode
jdk11.0.2lib.src.java.base.java
JDK11.0.2-lib.src.java.base.java
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /