00001 /* 00002 * @(#)hprof_trace.h 1.11 10/03/23 00003 * 00004 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. 00005 * 00006 * Redistribution and use in source and binary forms, with or without 00007 * modification, are permitted provided that the following conditions are met: 00008 * 00009 * -Redistribution of source code must retain the above copyright notice, this 00010 * list of conditions and the following disclaimer. 00011 * 00012 * -Redistribution in binary form must reproduce the above copyright notice, 00013 * this list of conditions and the following disclaimer in the documentation 00014 * and/or other materials provided with the distribution. 00015 * 00016 * Neither the name of Oracle or the names of contributors may 00017 * be used to endorse or promote products derived from this software without 00018 * specific prior written permission. 00019 * 00020 * This software is provided "AS IS," without a warranty of any kind. ALL 00021 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING 00022 * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 00023 * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") 00024 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE 00025 * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 00026 * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST 00027 * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 00028 * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY 00029 * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, 00030 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 00031 * 00032 * You acknowledge that this software is not designed, licensed or intended 00033 * for use in the design, construction, operation or maintenance of any 00034 * nuclear facility. 00035 */ 00036 00037 #ifndef HPROF_TRACE_H 00038 #define HPROF_TRACE_H 00039 00040 void trace_increment_all_sample_costs(jint count, jthread *threads, 00041 SerialNumber *thread_serial_nums, int depth, 00042 jboolean skip_init); 00043 00044 void trace_get_all_current(jint count, jthread *threads, 00045 SerialNumber *thread_serial_nums, int depth, 00046 jboolean skip_init, TraceIndex *traces, 00047 jboolean always_care); 00048 00049 TraceIndex trace_get_current(jthread thread, 00050 SerialNumber thread_serial_num, int depth, 00051 jboolean skip_init, 00052 FrameIndex *frames_buffer, 00053 jvmtiFrameInfo *jframes_buffer); 00054 00055 void trace_init(void); 00056 TraceIndex trace_find_or_create(SerialNumber thread_serial_num, 00057 jint n_frames, FrameIndex *frames, 00058 jvmtiFrameInfo *jframes_buffer); 00059 SerialNumber trace_get_serial_number(TraceIndex index); 00060 void trace_increment_cost(TraceIndex index, 00061 jint num_hits, jlong self_cost, jlong total_cost); 00062 void trace_list(void); 00063 void trace_cleanup(void); 00064 00065 void trace_clear_cost(void); 00066 void trace_output_unmarked(JNIEnv *env); 00067 void trace_output_cost(JNIEnv *env, double cutoff); 00068 void trace_output_cost_in_prof_format(JNIEnv *env); 00069 00070 #endif 00071
1.6.1