1 /*
2     Copyright (c) 1998--2006 Benhur Stein
3 
4     This file is part of Paj�.
5 
6     Paj� is free software; you can redistribute it and/or modify it under
7     the terms of the GNU Lesser General Public License as published by the
8     Free Software Foundation; either version 2 of the License, or (at your
9     option) any later version.
10 
11     Paj� is distributed in the hope that it will be useful, but WITHOUT ANY
12     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13     FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
14     for more details.
15 
16     You should have received a copy of the GNU Lesser General Public License
17     along with Paj�; if not, write to the Free Software Foundation, Inc.,
18 	51 Franklin Street, Fifth Floor, Boston, MA 02111 USA.
19 */
20 
21 
22 //////////////////////////////////////////////////
23 /*      Author: Geovani Ricardo Wiedenhoft      */
24 /*      Email: grw@inf.ufsm.br                  */
25 //////////////////////////////////////////////////
26 
27 
28 #ifndef _JRASTRO_H_
29 #define _JRASTRO_H_
30 
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <string.h>
34 #include <jvmti.h>
35 #include <jni.h>
36 #include <stdbool.h>
37 
38 #include "hash.h"
39 #include "list.h"
40 #include "JRastro_rastros.h"
41 #include "JRastro_basic.h"
42 #include "JRastro_traces.h"
43 #include "JRastro_events.h"
44 #include "JRastro_thread.h"
45 #include "JRastro_hash_func.h"
46 #include "JRastro_list_func.h"
47 #include "JRastro_options.h"
48 #include "JRastro_paje.h"
49 #include "JRastro_java_crw_demo.h"
50 #include "JRastro_classfile_constants.h"
51 
52 
53 #define CLASS_NAME "org/lsc/JRastro/Instru"
54 #define CLASS_SIG "Lorg/lsc/JRastro/Instru;"
55 //#define CLASS_NAME "sun/tools/hprof/Tracker"
56 //#define CLASS_SIG "Lsun/tools/hprof/Tracker;"
57 
58 #define CALL_NAME "CallSite"
59 #define CALL_SIG "(Ljava/lang/Object;I)V"
60 
61 #define CALL_STATIC_NAME "CallStaticSite"
62 #define CALL_STATIC_SIG "(I)V"
63 
64 #define RETURN_NAME "ReturnSite"
65 #define RETURN_SIG "()V"
66 //#define RETURN_SIG "(I)V"
67 
68 #define RETURN_MAIN_NAME "ReturnSite"
69 //#define RETURN_MAIN_NAME "ReturnMain"
70 #define RETURN_MAIN_SIG "()V"
71 //#define RETURN_MAIN_SIG "(I)V"
72 
73 /*Caso necessite rastrear OBJECT_INIT comente o NULL, e *
74 *          coloque as outras linhas                     */
75 //#define OBJECT_INIT_NAME NULL
76 //#define OBJECT_INIT_SIG NULL
77 #define OBJECT_INIT_NAME "ObjectInit"
78 #define OBJECT_INIT_SIG "(Ljava/lang/Object;)V"
79 
80 /*Caso necessite rastrear NEWARRAY comente o NULL, e *
81 *          coloque as outras linhas                     */
82 //#define NEWARRAY_NAME NULL
83 //#define NEWARRAY_SIG NULL
84 #define NEWARRAY_NAME "NewArray"
85 #define NEWARRAY_SIG "(Ljava/lang/Object;)V"
86 
87 #endif	/*_JRASTRO_H_*/
88