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 17 jdk.hotspot.agent.jmod - Hotspot Agent Module
JDK 17 jdk.hotspot.agent.jmod is the JMOD file for JDK 17 Hotspot Agent module.
JDK 17 Hotspot Agent module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.hotspot.agent.jmod.
JDK 17 Hotspot Agent module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Hotspot Agent module source code files are stored in \fyicenter\jdk-17.0.5\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/code/CodeBlob.java
/* * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * */ package sun.jvm.hotspot.code; import sun.jvm.hotspot.compiler.ImmutableOopMap; import sun.jvm.hotspot.compiler.ImmutableOopMapSet; import sun.jvm.hotspot.debugger.Address; import sun.jvm.hotspot.runtime.VM; import sun.jvm.hotspot.runtime.VMObject; import sun.jvm.hotspot.types.AddressField; import sun.jvm.hotspot.types.CIntegerField; import sun.jvm.hotspot.types.Type; import sun.jvm.hotspot.types.TypeDataBase; import sun.jvm.hotspot.utilities.Assert; import sun.jvm.hotspot.utilities.CStringUtilities; import java.io.PrintStream; import sun.jvm.hotspot.utilities.Observable; import sun.jvm.hotspot.utilities.Observer; public class CodeBlob extends VMObject { private static AddressField nameField; private static CIntegerField sizeField; private static CIntegerField headerSizeField; private static AddressField contentBeginField; private static AddressField codeBeginField; private static AddressField codeEndField; private static AddressField dataEndField; private static CIntegerField frameCompleteOffsetField; private static CIntegerField dataOffsetField; private static CIntegerField frameSizeField; private static AddressField oopMapsField; public CodeBlob(Address addr) { super(addr); } protected static int matcherInterpreterFramePointerReg; private static void initialize(TypeDataBase db) { Type type = db.lookupType("CodeBlob"); nameField = type.getAddressField("_name"); sizeField = type.getCIntegerField("_size"); headerSizeField = type.getCIntegerField("_header_size"); frameCompleteOffsetField = type.getCIntegerField("_frame_complete_offset"); contentBeginField = type.getAddressField("_content_begin"); codeBeginField = type.getAddressField("_code_begin"); codeEndField = type.getAddressField("_code_end"); dataEndField = type.getAddressField("_data_end"); dataOffsetField = type.getCIntegerField("_data_offset"); frameSizeField = type.getCIntegerField("_frame_size"); oopMapsField = type.getAddressField("_oop_maps"); if (VM.getVM().isServerCompiler()) { matcherInterpreterFramePointerReg = db.lookupIntConstant("Matcher::interpreter_frame_pointer_reg").intValue(); } } static { VM.registerVMInitializedObserver(new Observer() { public void update(Observable o, Object data) { initialize(VM.getVM().getTypeDataBase()); } }); } public Address headerBegin() { return getAddress(); } public Address headerEnd() { return getAddress().addOffsetTo(getHeaderSize()); } public Address contentBegin() { return contentBeginField.getValue(addr); } public Address contentEnd() { return headerBegin().addOffsetTo(getDataOffset()); } public Address codeBegin() { return codeBeginField.getValue(addr); } public Address codeEnd() { return codeEndField.getValue(addr); } public Address dataBegin() { return headerBegin().addOffsetTo(getDataOffset()); } public Address dataEnd() { return dataEndField.getValue(addr); } public long getFrameCompleteOffset() { return frameCompleteOffsetField.getValue(addr); } public int getDataOffset() { return (int) dataOffsetField.getValue(addr); } // Sizes public int getSize() { return (int) sizeField.getValue(addr); } public int getHeaderSize() { return (int) headerSizeField.getValue(addr); } public long getFrameSizeWords() { return (int) frameSizeField.getValue(addr); } public String getName() { return CStringUtilities.getString(nameField.getValue(addr)); } /** OopMap for frame; can return null if none available */ public ImmutableOopMapSet getOopMaps() { Address value = oopMapsField.getValue(addr); if (value == null) { return null; } return new ImmutableOopMapSet(value); } // Typing public boolean isBufferBlob() { return false; } public boolean isCompiled() { return false; } public boolean isNMethod() { return false; } public boolean isRuntimeStub() { return false; } public boolean isDeoptimizationStub() { return false; } public boolean isUncommonTrapStub() { return false; } public boolean isExceptionStub() { return false; } public boolean isSafepointStub() { return false; } public boolean isAdapterBlob() { return false; } // Fine grain nmethod support: isNmethod() == isJavaMethod() || isNativeMethod() || isOSRMethod() public boolean isJavaMethod() { return false; } public boolean isNativeMethod() { return false; } /** On-Stack Replacement method */ public boolean isOSRMethod() { return false; } public NMethod asNMethodOrNull() { if (isNMethod()) return (NMethod)this; return null; } // FIXME: add getRelocationSize() public int getContentSize() { return (int) contentEnd().minus(contentBegin()); } public int getCodeSize() { return (int) codeEnd() .minus(codeBegin()); } public int getDataSize() { return (int) dataEnd() .minus(dataBegin()); } // Containment public boolean blobContains(Address addr) { return headerBegin() .lessThanOrEqual(addr) && dataEnd() .greaterThan(addr); } // FIXME: add relocationContains public boolean contentContains(Address addr) { return contentBegin().lessThanOrEqual(addr) && contentEnd().greaterThan(addr); } public boolean codeContains(Address addr) { return codeBegin() .lessThanOrEqual(addr) && codeEnd() .greaterThan(addr); } public boolean dataContains(Address addr) { return dataBegin() .lessThanOrEqual(addr) && dataEnd() .greaterThan(addr); } public boolean contains(Address addr) { return contentContains(addr); } public boolean isFrameCompleteAt(Address a) { return codeContains(a) && a.minus(codeBegin()) >= getFrameCompleteOffset(); } // Reclamation support (really only used by the nmethods, but in order to get asserts to work // in the CodeCache they are defined virtual here) public boolean isZombie() { return false; } public boolean isLockedByVM() { return false; } public ImmutableOopMap getOopMapForReturnAddress(Address returnAddress, boolean debugging) { Address pc = returnAddress; if (Assert.ASSERTS_ENABLED) { Assert.that(getOopMaps() != null, "nope"); } return getOopMaps().findMapAtOffset(pc.minus(codeBegin()), debugging); } /** NOTE: this returns a size in BYTES in this system! */ public long getFrameSize() { return VM.getVM().getAddressSize() * getFrameSizeWords(); } // Returns true, if the next frame is responsible for GC'ing oops passed as arguments public boolean callerMustGCArguments() { return false; } public void print() { printOn(System.out); } public void printOn(PrintStream tty) { tty.print(getName()); printComponentsOn(tty); } protected void printComponentsOn(PrintStream tty) { tty.println(" content: [" + contentBegin() + ", " + contentEnd() + "), " + " code: [" + codeBegin() + ", " + codeEnd() + "), " + " data: [" + dataBegin() + ", " + dataEnd() + "), " + " frame size: " + getFrameSize()); } }
⏎ sun/jvm/hotspot/code/CodeBlob.java
Or download all of them as a single archive file:
File name: jdk.hotspot.agent-17.0.5-src.zip File size: 1238587 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.httpserver.jmod - HTTP Server Module
2023-10-04, 27378👍, 0💬
Popular Posts:
JDK 11 jdk.jconsole.jmod is the JMOD file for JDK 11 JConsole tool, which can be invoked by the "jco...
JDK 11 jdk.dynalink.jmod is the JMOD file for JDK 11 Dynamic Linking module. JDK 11 Dynamic Linking ...
Apache Log4j IOStreams is a Log4j API extension that provides numerous classes from java.io that can...
Guava is a suite of core and expanded libraries that include utility classes, google's collections, ...
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solut...