8043936: Drop HPROF as demo, keep as HPROF agent shipped with JDK

Reviewed-by: erikj, alanb
This commit is contained in:
Staffan Larsen 2014-08-26 07:55:08 +02:00
parent 6d54a640e0
commit 8df06738ca
65 changed files with 9 additions and 253 deletions

View File

@ -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++))

View File

@ -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)

View 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

View File

@ -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

View File

@ -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>

View File

@ -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
--------

View File

@ -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>