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/code/CodeCache.java
/* * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * */ package sun.jvm.hotspot.code; import java.util.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.types.*; import sun.jvm.hotspot.utilities.*; public class CodeCache { private static GrowableArray<CodeHeap> heapArray; private static AddressField scavengeRootNMethodsField; private static VirtualConstructor virtualConstructor; static { VM.registerVMInitializedObserver(new Observer() { public void update(Observable o, Object data) { initialize(VM.getVM().getTypeDataBase()); } }); } private static synchronized void initialize(TypeDataBase db) { Type type = db.lookupType("CodeCache"); // Get array of CodeHeaps // Note: CodeHeap may be subclassed with optional private heap mechanisms. Type codeHeapType = db.lookupType("CodeHeap"); VirtualBaseConstructor heapConstructor = new VirtualBaseConstructor(db, codeHeapType, "sun.jvm.hotspot.memory", CodeHeap.class); AddressField heapsField = type.getAddressField("_heaps"); heapArray = GrowableArray.create(heapsField.getValue(), heapConstructor); scavengeRootNMethodsField = type.getAddressField("_scavenge_root_nmethods"); virtualConstructor = new VirtualConstructor(db); // Add mappings for all possible CodeBlob subclasses virtualConstructor.addMapping("BufferBlob", BufferBlob.class); virtualConstructor.addMapping("nmethod", NMethod.class); virtualConstructor.addMapping("RuntimeStub", RuntimeStub.class); virtualConstructor.addMapping("AdapterBlob", AdapterBlob.class); virtualConstructor.addMapping("MethodHandlesAdapterBlob", MethodHandlesAdapterBlob.class); virtualConstructor.addMapping("SafepointBlob", SafepointBlob.class); virtualConstructor.addMapping("DeoptimizationBlob", DeoptimizationBlob.class); if (VM.getVM().isServerCompiler()) { virtualConstructor.addMapping("ExceptionBlob", ExceptionBlob.class); virtualConstructor.addMapping("UncommonTrapBlob", UncommonTrapBlob.class); } } public NMethod scavengeRootMethods() { return (NMethod) VMObjectFactory.newObject(NMethod.class, scavengeRootNMethodsField.getValue()); } public boolean contains(Address p) { for (int i = 0; i < heapArray.length(); ++i) { if (heapArray.at(i).contains(p)) { return true; } } return false; } /** When VM.getVM().isDebugging() returns true, this behaves like findBlobUnsafe */ public CodeBlob findBlob(Address start) { CodeBlob result = findBlobUnsafe(start); if (result == null) return null; if (VM.getVM().isDebugging()) { return result; } // We could potientially look up non_entrant methods // NOTE: this is effectively a "guarantee", and is slightly different from the one in the VM if (Assert.ASSERTS_ENABLED) { Assert.that(!(result.isZombie() || result.isLockedByVM()), "unsafe access to zombie method"); } return result; } public CodeBlob findBlobUnsafe(Address start) { CodeBlob result = null; CodeHeap containing_heap = null; for (int i = 0; i < heapArray.length(); ++i) { if (heapArray.at(i).contains(start)) { containing_heap = heapArray.at(i); break; } } if (containing_heap == null) { return null; } try { result = (CodeBlob) virtualConstructor.instantiateWrapperFor(containing_heap.findStart(start)); } catch (WrongTypeException wte) { Address cbAddr = null; try { cbAddr = containing_heap.findStart(start); } catch (Exception findEx) { findEx.printStackTrace(); } String message = "Couldn't deduce type of CodeBlob "; if (cbAddr != null) { message = message + "@" + cbAddr + " "; } message = message + "for PC=" + start; throw new RuntimeException(message, wte); } if (result == null) return null; if (Assert.ASSERTS_ENABLED) { // The HeapBlock that contains this blob is outside of the blob // but it shouldn't be an error to find a blob based on the // pointer to the HeapBlock. Assert.that(result.blobContains(start) || result.blobContains(start.addOffsetTo(8)), "found wrong CodeBlob"); } return result; } public NMethod findNMethod(Address start) { CodeBlob cb = findBlob(start); if (Assert.ASSERTS_ENABLED) { Assert.that(cb == null || cb.isNMethod(), "did not find an nmethod"); } return (NMethod) cb; } public NMethod findNMethodUnsafe(Address start) { CodeBlob cb = findBlobUnsafe(start); if (Assert.ASSERTS_ENABLED) { Assert.that(cb == null || cb.isNMethod(), "did not find an nmethod"); } return (NMethod) cb; } /** Routine for instantiating appropriately-typed wrapper for a CodeBlob. Used by CodeCache, Runtime1, etc. */ public CodeBlob createCodeBlobWrapper(Address codeBlobAddr) { try { return (CodeBlob) virtualConstructor.instantiateWrapperFor(codeBlobAddr); } catch (Exception e) { String message = "Unable to deduce type of CodeBlob from address " + codeBlobAddr + " (expected type nmethod, RuntimeStub, "; if (VM.getVM().isClientCompiler()) { message = message + " or "; } message = message + "SafepointBlob"; if (VM.getVM().isServerCompiler()) { message = message + ", DeoptimizationBlob, or ExceptionBlob"; } message = message + ")"; throw new RuntimeException(message); } } public void iterate(CodeCacheVisitor visitor) { visitor.prologue(lowBound(), highBound()); for (int i = 0; i < heapArray.length(); ++i) { CodeHeap current_heap = heapArray.at(i); current_heap.iterate(visitor, this); } visitor.epilogue(); } //-------------------------------------------------------------------------------- // Internals only below this point // private Address lowBound() { Address low = heapArray.at(0).begin(); for (int i = 1; i < heapArray.length(); ++i) { if (heapArray.at(i).begin().lessThan(low)) { low = heapArray.at(i).begin(); } } return low; } private Address highBound() { Address high = heapArray.at(0).end(); for (int i = 1; i < heapArray.length(); ++i) { if (heapArray.at(i).end().greaterThan(high)) { high = heapArray.at(i).end(); } } return high; } }
⏎ sun/jvm/hotspot/code/CodeCache.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, 144780👍, 0💬
Popular Posts:
Java Cryptography Extension 1.2.2 JAR File Size and Download Location: File name: jce.jar, jce-1.2.2...
XOM™ is a new XML object model. It is an open source (LGPL), tree-based API for processing XML with ...
What Is poi-scratchpad-5.2.3.jar ?poi-scratchpad-5.2.3.jar is one of the JAR files for Apache POI 5....
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was develo...
JDK 11 jdk.jshell.jmod is the JMOD file for JDK 11 JShell tool, which can be invoked by the "jshell"...