Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 jdk.hotspot.agent.jmod - Hotspot Agent Module
JDK 11 jdk.hotspot.agent.jmod is the JMOD file for JDK 11 Hotspot Agent module.
JDK 11 Hotspot Agent module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.hotspot.agent.jmod.
JDK 11 Hotspot Agent module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Hotspot Agent module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.hotspot.agent.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/jvm/hotspot/runtime/JavaVFrame.java
/* * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * */ package sun.jvm.hotspot.runtime; import java.io.*; import java.util.*; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.utilities.*; import sun.jvm.hotspot.debugger.*; public abstract class JavaVFrame extends VFrame { private static final String ADDRESS_FORMAT = VM.getVM().isLP64() ? "0x%016x" : "0x%08x"; /** JVM state */ public abstract Method getMethod(); public abstract int getBCI(); public abstract StackValueCollection getLocals(); public abstract StackValueCollection getExpressions(); public abstract List<MonitorInfo> getMonitors(); /** Test operation */ public boolean isJavaFrame() { return true; } /** Package-internal constructor */ JavaVFrame(Frame fr, RegisterMap regMap, JavaThread thread) { super(fr, regMap, thread); } /** Get monitor (if any) that this JavaVFrame is trying to enter */ // FIXME: not yet implemented // public Address getPendingMonitor(int frameCount); public void printLockedObjectClassName(PrintStream tty, OopHandle hobj, String lockState) { if (hobj.asLongValue() != 0L) { tty.format("\t- %s <" + ADDRESS_FORMAT + "> ", lockState, hobj.asLongValue()); Klass klass = Oop.getKlassForOopHandle(hobj); String klassName = klass.getName().asString(); tty.print("(a "); if (klassName.equals("java/lang/Class")) { Oop obj = VM.getVM().getObjectHeap().newOop(hobj); klassName = java_lang_Class.asExternalName(obj); tty.print("java.lang.Class for "); } tty.println(klassName.replace('/', '.') + ")"); } } private String identifyLockState(MonitorInfo monitor, String waitingState) { Mark mark = new Mark(monitor.owner()); if (mark.hasMonitor() && ( // we have marked ourself as pending on this monitor mark.monitor().equals(thread.getCurrentPendingMonitor()) || // we are not the owner of this monitor !mark.monitor().isEntered(thread) )) { return waitingState; } return "locked"; } /** Printing used during stack dumps */ public void printLockInfo(PrintStream tty, int frameCount) { // If this is the first frame and it is java.lang.Object.wait(...) // then print out the receiver. Locals are not always available, // e.g., compiled native frames have no scope so there are no locals. if (frameCount == 0) { if (getMethod().getName().asString().equals("wait") && getMethod().getMethodHolder().getName().asString().equals("java/lang/Object")) { String waitState = "waiting on"; // assume we are waiting // If earlier in the output we reported java.lang.Thread.State == // "WAITING (on object monitor)" and now we report "waiting on", then // we are still waiting for notification or timeout. Otherwise if // we earlier reported java.lang.Thread.State == "BLOCKED (on object // monitor)", then we are actually waiting to re-lock the monitor. // At this level we can't distinguish the two cases to report // "waited on" rather than "waiting on" for the second case. StackValueCollection locs = getLocals(); if (!locs.isEmpty()) { StackValue sv = locs.get(0); if (sv.getType() == BasicType.getTObject()) { OopHandle o = sv.getObject(); printLockedObjectClassName(tty, o, waitState); } } else { tty.println("\t- " + waitState + " <no object reference available>"); } } else if (thread.getCurrentParkBlocker() != null) { Oop obj = thread.getCurrentParkBlocker(); Klass k = obj.getKlass(); tty.format("\t- parking to wait for <" + ADDRESS_FORMAT + "> (a %s)", obj.getHandle().asLongValue(), k.getName().asString()); tty.println(); } } // Print out all monitors that we have locked, or are trying to lock, // including re-locking after being notified or timing out in a wait(). List<MonitorInfo> mons = getMonitors(); if (!mons.isEmpty()) { boolean foundFirstMonitor = false; for (int index = mons.size() - 1; index >= 0; index--) { MonitorInfo monitor = mons.get(index); if (monitor.eliminated() && isCompiledFrame()) { // Eliminated in compiled code if (monitor.ownerIsScalarReplaced()) { Klass k = Oop.getKlassForOopHandle(monitor.ownerKlass()); tty.println("\t- eliminated <owner is scalar replaced> (a " + k.getName().asString() + ")"); } else if (monitor.owner() != null) { printLockedObjectClassName(tty, monitor.owner(), "eliminated"); } continue; } if (monitor.owner() != null) { // the monitor is associated with an object, i.e., it is locked String lockState = "locked"; if (!foundFirstMonitor && frameCount == 0) { // If this is the first frame and we haven't found an owned // monitor before, then we need to see if we have completed // the lock or if we are blocked trying to acquire it. Only // an inflated monitor that is first on the monitor list in // the first frame can block us on a monitor enter. lockState = identifyLockState(monitor, "waiting to lock"); } else if (frameCount != 0) { // This is not the first frame so we either own this monitor // or we owned the monitor before and called wait(). Because // wait() could have been called on any monitor in a lower // numbered frame on the stack, we have to check all the // monitors on the list for this frame. lockState = identifyLockState(monitor, "waiting to re-lock in wait()"); } printLockedObjectClassName(tty, monitor.owner(), lockState); foundFirstMonitor = true; } } } } /** Printing operations */ // // FIXME: implement visitor pattern for traversing vframe contents? // public void print() { printOn(System.out); } public void printOn(PrintStream tty) { super.printOn(tty); tty.print("\t"); getMethod().printValueOn(tty); tty.println(); tty.println("\tbci:\t" + getBCI()); printStackValuesOn(tty, "locals", getLocals()); printStackValuesOn(tty, "expressions", getExpressions()); } public void printActivation(int index) { printActivationOn(System.out, index); } public void printActivationOn(PrintStream tty, int index) { // frame number and method tty.print(index + " - "); printValueOn(tty); tty.println(); if (VM.getVM().wizardMode()) { printOn(tty); tty.println(); } } /** Verification operations */ public void verify() { } public boolean equals(Object o) { if (o == null || !(o instanceof JavaVFrame)) { return false; } JavaVFrame other = (JavaVFrame) o; // Check static part if (!getMethod().equals(other.getMethod())) { return false; } if (getBCI() != other.getBCI()) { return false; } // dynamic part - we just compare the frame pointer if (! getFrame().equals(other.getFrame())) { return false; } return true; } public int hashCode() { return getMethod().hashCode() ^ getBCI() ^ getFrame().hashCode(); } /** Structural compare */ public boolean structuralCompare(JavaVFrame other) { // Check static part if (!getMethod().equals(other.getMethod())) { return false; } if (getBCI() != other.getBCI()) { return false; } // Check locals StackValueCollection locs = getLocals(); StackValueCollection otherLocs = other.getLocals(); if (Assert.ASSERTS_ENABLED) { Assert.that(locs.size() == otherLocs.size(), "sanity check"); } for (int i = 0; i < locs.size(); i++) { // it might happen the compiler reports a conflict and // the interpreter reports a bogus int. if ( isCompiledFrame() && (locs.get(i)).getType() == BasicType.getTConflict()) continue; if (other.isCompiledFrame() && (otherLocs.get(i)).getType() == BasicType.getTConflict()) continue; if (!locs.get(i).equals(otherLocs.get(i))) { return false; } } // Check expressions StackValueCollection exprs = getExpressions(); StackValueCollection otherExprs = other.getExpressions(); if (Assert.ASSERTS_ENABLED) { Assert.that(exprs.size() == otherExprs.size(), "sanity check"); } for (int i = 0; i < exprs.size(); i++) { if (!exprs.get(i).equals(otherExprs.get(i))) { return false; } } return true; } //-------------------------------------------------------------------------------- // Internals only below this point // private void printStackValuesOn(PrintStream tty, String title, StackValueCollection values) { if (values.isEmpty()) { return; } tty.println("\t" + title + ":"); for (int index = 0; index < values.size(); index++) { tty.print("\t" + index + "\t"); values.get(index).printOn(tty); tty.println(); } } }
⏎ sun/jvm/hotspot/runtime/JavaVFrame.java
Or download all of them as a single archive file:
File name: jdk.hotspot.agent-11.0.1-src.zip File size: 1243786 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.httpserver.jmod - HTTP Server Module
2020-02-29, 131765👍, 0💬
Popular Posts:
What Is poi-ooxml-5.2.3.jar? poi-ooxml-5.2.3.jar is one of the JAR files for Apache POI 5.2.3, which...
This package is the backport of java.util.concurrent API, introduced in Java 5.0 and further refined...
JDK 11 java.base.jmod is the JMOD file for JDK 11 Base module. JDK 11 Base module compiled class fil...
The Java Naming and Directory Interface (JNDI) is part of the Java platform, providing applications ...
JDK 11 java.xml.jmod is the JMOD file for JDK 11 XML (eXtensible Markup Language) module. JDK 11 XML...