8043936: Drop HPROF as demo, keep as HPROF agent shipped with JDK
Reviewed-by: erikj, alanb
This commit is contained in:
parent
6d54a640e0
commit
8df06738ca
@ -314,19 +314,6 @@ $(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util))
|
||||
$(eval $(call SetupJVMTIDemo,gctest, agent_util))
|
||||
$(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,heapViewer, agent_util))
|
||||
|
||||
# On AIX, hprof requires 'dladdr' from src/aix/porting/porting_aix.cpp
|
||||
BUILD_LIBHPROF_AIX_EXTRA_SRC :=
|
||||
BUILD_LIBHPROF_AIX_EXTRA_CFLAGS :=
|
||||
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
BUILD_LIBHPROF_AIX_EXTRA_SRC += $(JDK_TOPDIR)/src/aix/porting
|
||||
BUILD_LIBHPROF_AIX_EXTRA_CFLAGS += -I$(JDK_TOPDIR)/src/aix/porting
|
||||
endif
|
||||
|
||||
$(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \
|
||||
$(BUILD_LIBHPROF_AIX_EXTRA_CFLAGS), C, \
|
||||
-ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread, $(BUILD_LIBHPROF_AIX_EXTRA_SRC)))
|
||||
|
||||
$(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,waiters, agent_util, , C++))
|
||||
|
@ -27,7 +27,7 @@ include CopyCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
HPROF_SRC := $(JDK_TOPDIR)/src/demo/share/jvmti/hprof/jvm.hprof.txt
|
||||
HPROF_SRC := $(JDK_TOPDIR)/src/jdk.hprof.agent/share/native/libhprof/jvm.hprof.txt
|
||||
|
||||
$(LIB_DST_DIR)/jvm.hprof.txt: $(HPROF_SRC)
|
||||
$(call install-file)
|
||||
|
@ -27,11 +27,11 @@ include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
BUILD_LIBHPROF_SRC := $(JDK_TOPDIR)/src/demo/share/jvmti/hprof \
|
||||
$(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_API_DIR)/jvmti/hprof
|
||||
BUILD_LIBHPROF_SRC := $(call FindSrcDirsForLib, jdk.hprof.agent, hprof)
|
||||
|
||||
BUILD_LIBHPROF_CFLAGS := $(addprefix -I, $(BUILD_LIBHPROF_SRC)) \
|
||||
-I$(JDK_TOPDIR)/src/demo/share/jvmti/java_crw_demo
|
||||
|
||||
|
||||
BUILD_LIBHPROF_LDFLAGS :=
|
||||
|
||||
LIBHPROF_OPTIMIZATION := HIGHEST
|
||||
|
@ -1,205 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# - Neither the name of Oracle nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Sample GNU Makefile for building
|
||||
#
|
||||
# Example uses:
|
||||
# gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparc]
|
||||
# gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparcv9]
|
||||
# gnumake JDK=<java_home> OSNAME=linux [OPT=true]
|
||||
# gnumake JDK=<java_home> OSNAME=win32 [OPT=true]
|
||||
#
|
||||
########################################################################
|
||||
|
||||
# Source lists
|
||||
LIBNAME=hprof
|
||||
SOURCES= \
|
||||
debug_malloc.c \
|
||||
hprof_blocks.c \
|
||||
hprof_class.c \
|
||||
hprof_cpu.c \
|
||||
hprof_error.c \
|
||||
hprof_event.c \
|
||||
hprof_frame.c \
|
||||
hprof_init.c \
|
||||
hprof_io.c \
|
||||
hprof_ioname.c \
|
||||
hprof_listener.c \
|
||||
hprof_loader.c \
|
||||
hprof_monitor.c \
|
||||
hprof_object.c \
|
||||
hprof_reference.c \
|
||||
hprof_site.c \
|
||||
hprof_stack.c \
|
||||
hprof_string.c \
|
||||
hprof_table.c \
|
||||
hprof_tag.c \
|
||||
hprof_tls.c \
|
||||
hprof_trace.c \
|
||||
hprof_tracker.c \
|
||||
hprof_util.c \
|
||||
hprof_md.c
|
||||
|
||||
JAVA_SOURCES=Tracker.java
|
||||
|
||||
# Name of jar file that needs to be created
|
||||
#JARFILE=hprof.jar
|
||||
|
||||
# Solaris Sun C Compiler Version 5.5
|
||||
ifeq ($(OSNAME), solaris)
|
||||
# Sun Solaris Compiler options needed
|
||||
COMMON_FLAGS=-mt -KPIC
|
||||
# Options that help find errors
|
||||
COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
|
||||
# To make hprof logging code available
|
||||
COMMON_FLAGS+= -DHPROF_LOGGING
|
||||
# Check LIBARCH for any special compiler options
|
||||
LIBARCH=$(shell uname -p)
|
||||
ifeq ($(LIBARCH), sparc)
|
||||
COMMON_FLAGS+=-xarch=v8 -xregs=no%appl
|
||||
endif
|
||||
ifeq ($(LIBARCH), sparcv9)
|
||||
COMMON_FLAGS+=-xarch=v9 -xregs=no%appl
|
||||
endif
|
||||
ifeq ($(OPT), true)
|
||||
CFLAGS=-xO2 $(COMMON_FLAGS) -DNDEBUG
|
||||
else
|
||||
CFLAGS=-g $(COMMON_FLAGS) -DDEBUG
|
||||
endif
|
||||
# Object files needed to create library
|
||||
OBJECTS=$(SOURCES:%.c=%.o)
|
||||
# Library name and options needed to build it
|
||||
LIBRARY=lib$(LIBNAME).so
|
||||
LDFLAGS=-z defs -ztext
|
||||
# Libraries we are dependent on
|
||||
LIBRARIES=-lsocket -lnsl -ldl -lc
|
||||
# Building a shared library
|
||||
LINK_SHARED=$(LINK.c) -G -o $@
|
||||
endif
|
||||
|
||||
# Linux GNU C Compiler
|
||||
ifeq ($(OSNAME), linux)
|
||||
# GNU Compiler options needed to build it
|
||||
COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer
|
||||
# Options that help find errors
|
||||
COMMON_FLAGS+= -W -Wall -Wno-unused -Wno-parentheses
|
||||
# To allow access to dladdr()
|
||||
COMMON_FLAGS+= -D_GNU_SOURCE
|
||||
# To prevent include of procfs.h
|
||||
COMMON_FLAGS+= -DLINUX
|
||||
# To make sure code is reentrant
|
||||
COMMON_FLAGS+= -D_REENTRANT
|
||||
# To make hprof logging code available
|
||||
COMMON_FLAGS+= -DHPROF_LOGGING
|
||||
ifeq ($(OPT), true)
|
||||
CFLAGS=-O2 $(COMMON_FLAGS) -DNDEBUG
|
||||
else
|
||||
CFLAGS=-g $(COMMON_FLAGS) -DDEBUG
|
||||
endif
|
||||
# Object files needed to create library
|
||||
OBJECTS=$(SOURCES:%.c=%.o)
|
||||
# Library name and options needed to build it
|
||||
LIBRARY=lib$(LIBNAME).so
|
||||
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
|
||||
# Libraries we are dependent on
|
||||
LIBRARIES= -ldl -lc
|
||||
# Building a shared library
|
||||
LINK_SHARED=$(LINK.c) -shared -o $@
|
||||
endif
|
||||
|
||||
# Windows Microsoft C/C++ Optimizing Compiler Version 12
|
||||
ifeq ($(OSNAME), win32)
|
||||
CC=cl
|
||||
# Compiler options needed to build it
|
||||
COMMON_FLAGS=-Gy -DWIN32
|
||||
# Options that help find errors
|
||||
COMMON_FLAGS+=-W0 -WX
|
||||
# To make hprof logging code available
|
||||
COMMON_FLAGS+= -DHPROF_LOGGING
|
||||
ifeq ($(OPT), true)
|
||||
CFLAGS= -Ox -Op -Zi $(COMMON_FLAGS) -DNDEBUG
|
||||
else
|
||||
CFLAGS= -Od -Zi $(COMMON_FLAGS) -DDEBUG
|
||||
endif
|
||||
# Add java_crw_demo source
|
||||
SOURCES += ../java_crw_demo.c
|
||||
# Object files needed to create library
|
||||
OBJECTS=$(SOURCES:%.c=%.obj)
|
||||
# Library name and options needed to build it
|
||||
LIBRARY=$(LIBNAME).dll
|
||||
LDFLAGS=
|
||||
# Libraries we are dependent on
|
||||
LIBRARIES=wsock32.lib winmm.lib
|
||||
# Building a shared library
|
||||
LINK_SHARED=link -dll -out:$@
|
||||
endif
|
||||
|
||||
# Common -I options
|
||||
CFLAGS += -I.
|
||||
CFLAGS += -I../java_crw_demo
|
||||
CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME)
|
||||
|
||||
# Default rule (build both native library and jar file)
|
||||
all: hprof_md.c $(LIBRARY) $(JARFILE)
|
||||
|
||||
# Get platform specific hprof_md.c
|
||||
hprof_md.c:
|
||||
rm -f $@
|
||||
cp $(OSNAME)/hprof_md.c $@
|
||||
|
||||
# Build native library
|
||||
$(LIBRARY): $(OBJECTS)
|
||||
$(LINK_SHARED) $(OBJECTS) $(LIBRARIES)
|
||||
|
||||
# Build jar file
|
||||
$(JARFILE): $(JAVA_SOURCES)
|
||||
rm -f -r classes
|
||||
mkdir -p classes
|
||||
$(JDK)/bin/javac -d classes $(JAVA_SOURCES)
|
||||
(cd classes; $(JDK)/bin/jar cf ../$@ *)
|
||||
|
||||
# Cleanup the built bits
|
||||
clean:
|
||||
rm -f -r classes
|
||||
rm -f $(LIBRARY) $(JARFILE) $(OBJECTS)
|
||||
|
||||
# Simple tester
|
||||
test: all
|
||||
LD_LIBRARY_PATH=. $(JDK)/bin/java -agentlib:$(LIBNAME) -Xbootclasspath/a:./$(JARFILE) -version
|
||||
|
||||
# Compilation rule only needed on Windows
|
||||
ifeq ($(OSNAME), win32)
|
||||
%.obj: %.c
|
||||
$(COMPILE.c) $<
|
||||
endif
|
||||
|
@ -54,17 +54,16 @@ variable (Windows).
|
||||
This is system and platform specific.
|
||||
If you are using 64bit Solaris (e.g. 'java -d64'),
|
||||
you should use LD_LIBRARY_PATH64.
|
||||
Some agents such as hprof (heap/cpu profiler) and jdwp (debugger backend)
|
||||
Some agents such as the jdwp (debugger backend)
|
||||
are located inside the primary JDK directories and will always be found
|
||||
in those locations.
|
||||
|
||||
<p>
|
||||
The agents that instrument classfiles
|
||||
(i.e. BCI, usually through the java_crw_demo library)
|
||||
such as hprof, heapTracker, mtrace, and minst,
|
||||
such as heapTracker, mtrace, and minst,
|
||||
also need to have the Java classes they use available in the bootclasspath.
|
||||
The one used by hprof is already in the bootclasspath, and the
|
||||
other agents will make attempts at automatically adding their jar file
|
||||
The agents will make attempts at automatically adding their jar file
|
||||
(e.g. heapTracker.jar, mtrace.jar, or minst.jar) to the bootclasspath
|
||||
with AddToBootstrapClassLoaderSearch from JVM TI at startup
|
||||
(see the agent_util code).
|
||||
@ -150,19 +149,6 @@ This is a small agent that gets information about threads
|
||||
waiting on monitors.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<A HREF="hprof">hprof</A>
|
||||
<br>
|
||||
This is a large agent that does heap and cpu profiling.
|
||||
This demo agent is actually built into the
|
||||
|
||||
Java Runtime Environment (JRE).
|
||||
It uses Bytecode Instrumentation (BCI) via the java_crw_demo library.
|
||||
<br>
|
||||
<b>Note:</b> hprof is NOT a small or simple agent, the other smaller demos
|
||||
should be looked at first.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -106,12 +106,8 @@ Design and Implementation:
|
||||
|
||||
* Sources in the JDK workspace
|
||||
The sources and Makefiles live in:
|
||||
src/share/classes/com/sun/demo/jvmti/hprof/*
|
||||
src/share/demo/jvmti/hprof/*
|
||||
src/jdk.hprof.agent/*
|
||||
src/share/demo/jvmti/java_crw_demo/*
|
||||
src/solaris/demo/jvmti/hprof/*
|
||||
src/windows/demo/jvmti/hprof/*
|
||||
make/java/java_hprof_demo/*
|
||||
make/java/java_crw_demo/*
|
||||
make/lib/Lib-jdk.hprof.agent.gmk
|
||||
|
||||
--------
|
@ -1731,14 +1731,6 @@ stack depth<br>
|
||||
</table>
|
||||
<br>
|
||||
<p></p>
|
||||
<h2><a name="mozTocId589424" class="mozTocH4"></a>Source Code<br>
|
||||
</h2>
|
||||
The source to HPROF is available in the JDK download in the
|
||||
demo/jvmti/hprof directory.
|
||||
<p><font size="-1"><b>*As used on this web site, the terms "Java
|
||||
Virtual Machine" or "JVM" mean a virtual machine for the Java platform.</b></font>
|
||||
</p>
|
||||
<p></p>
|
||||
<hr><!-- hhmts start -->
|
||||
Last modified: 2005<!-- hhmts end -->
|
||||
</body>
|
Loading…
Reference in New Issue
Block a user