You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(73) |
Sep
(92) |
Oct
(9) |
Nov
(80) |
Dec
(60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(92) |
Feb
(52) |
Mar
(71) |
Apr
(64) |
May
(53) |
Jun
(10) |
Jul
(111) |
Aug
(93) |
Sep
(134) |
Oct
|
Nov
|
Dec
|
From: Lukas P. <pe...@us...> - 2002-02-13 10:49:50
|
Update of /cvsroot/javaprofiler/test/snapshot In directory usw-pr-cvs1:/tmp/cvs-serv2928 Added Files: DebugFmt.sed Log Message: is helper for DebugOutput.java --- NEW FILE: DebugFmt.sed --- #!/bin/sed -f # Purpose of this script is machine comparison of output from # DebugOutput.print() and output from profiler library. # # usage: sed -f DebugFmt.sed FILE # # Output should be then sorted with Unix sort command. #specialni osetreni prvni radky s/.*/\ &/ s/ // :b #pripoj radku /\n/!N #uprav \r\n s/ $// #konec pri instancich, arenach a GC /\nINSTANCE:/q /\nARENA =/q /\nGC:$/q #nova hlavicka /\nGROUP = /{ #kompaktnejsi hlavicku s/GROUP = /GROUP=/ s/.*\n//p bb } /\nIS_ARRAY = /{ #dokonci OBJECT_TYPE zaznam s/\nIS_ARRAY =//p d } /^OBJECT_TYPE:/{ #pokracuj OBJECT_TYPE zaznam s/\nCLASS = // bb } /\nOBJECT TYPE:/{ #zacni OBJECT_TYPE zaznam #smaz zacatek s/.*\n// #kompaktnejsi hlavicku s/OBJECT TYPE:/OBJECT_TYPE:/ bb } /\nCLASS = /{ #kompaktnejsi hlavicku s/CLASS = /CLASS=/ s/.*\n//p bb } #odstranit \n, pokud neni zbytek prazdny, tak vytisknout s/\n\(.\)/ \1/p s/\n/ / #ponechat jen hlavicku s/\([^ ]*\).*/\1/ #skok na zacatek bb |
From: Lukas P. <pe...@us...> - 2002-02-12 11:20:30
|
Update of /cvsroot/javaprofiler/test/snapshot In directory usw-pr-cvs1:/tmp/cvs-serv5224 Modified Files: DebugOutput.java Log Message: fixed output format Index: DebugOutput.java =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/DebugOutput.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** DebugOutput.java 8 Feb 2002 10:13:20 -0000 1.1 --- DebugOutput.java 12 Feb 2002 11:20:25 -0000 1.2 *************** *** 82,86 **** ClassData c = o.getClassData(); if (c != null) System.out.println("CLASS = " + c.getName()); ! System.out.println("IS_ARRAY = "); String s; switch (o.getType()) { --- 82,86 ---- ClassData c = o.getClassData(); if (c != null) System.out.println("CLASS = " + c.getName()); ! System.out.print("IS_ARRAY = "); String s; switch (o.getType()) { *************** *** 296,299 **** --- 296,302 ---- /* * $Log$ + * Revision 1.2 2002/02/12 11:20:25 petrul + * fixed output format + * * Revision 1.1 2002/02/08 10:13:20 petrul * moved from jpiimpl module |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library/src/prof In directory usw-pr-cvs1:/tmp/cvs-serv5925/src/prof Modified Files: prof_get.cpp prof_jvm.cpp prof_method.cpp prof_object.cpp Log Message: fixes; calltree implementation (for exact cpu profiling) Index: prof_get.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof_get.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** prof_get.cpp 21 Nov 2001 22:31:44 -0000 1.8 --- prof_get.cpp 10 Feb 2002 18:36:13 -0000 1.9 *************** *** 249,253 **** key.objectKey.isArray = isArray; key.traceKey.numFrames = numFrames; ! key.objectKey.isArray = isArray; if (objectTrace = activeAllocObjectTraces.get(key)) return objectTrace; --- 249,253 ---- key.objectKey.isArray = isArray; key.traceKey.numFrames = numFrames; ! key.traceKey.frames = frames; if (objectTrace = activeAllocObjectTraces.get(key)) return objectTrace; Index: prof_jvm.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof_jvm.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -r1.26 -r1.27 *** prof_jvm.cpp 26 Jan 2002 10:19:44 -0000 1.26 --- prof_jvm.cpp 10 Feb 2002 18:36:13 -0000 1.27 *************** *** 195,198 **** --- 195,226 ---- } + static int printAllObjectTraces( AllocObjectTrace* otr, void**) { + + cout << " AllocObjectTrace - ID = " << otr->getProfID() << endl; + cout << " parentLeftObjId = " << otr->trace->getProfID() << " (" << otr->trace << ")" << endl; + cout << " parentUpObjId = " << otr->objectMethod->getProfID() << endl; + + return 0; + } + + static int printAllObjectMethods( AllocObjectMethod* om, void**) { + + cout << " AllocObjectMethod - ID = " << om->getProfID() << endl; + cout << " parentLeftObjId = " << om->method->getProfID() << " (" << om->method << ")" << endl; + cout << " parentUpObjId = " << om->object->getProfID() << endl; + om->objectTraces.forEach( printAllObjectTraces, NULL); + + return 0; + } + + static int printAllObjects( AllocObject* o, void**) { + + cout << "AllocObject - ID = " << o->getProfID() << " (" << o << ")" << endl; + o->objectMethods.forEach( printAllObjectMethods, NULL); + cout << endl; + + return 0; + } + static void printHashStatistics() { *************** *** 482,485 **** --- 510,514 ---- printTotals(); printSampling(); + allocObjects.forEach( printAllObjects, NULL); #endif Index: prof_method.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof_method.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** prof_method.cpp 21 Nov 2001 22:31:44 -0000 1.7 --- prof_method.cpp 10 Feb 2002 18:36:13 -0000 1.8 *************** *** 41,73 **** void Prof::event_methodEntry( JVMPI_Event* event) { ! Synchronized sync(dataLock); - jlong entryTime; JVMPI_CallFrame callFrame; JVMPI_CallTrace callTrace; - Thread* thread; callTrace.env_id = event->env_id; ! callTrace.num_frames = (jint)1; callTrace.frames = &callFrame; ! jvmpiInterface->GetCallTrace(&callTrace, (jint)1); ! if (callTrace.num_frames != (jint)1) { ! PROF_ERROR("METHOD ENTRY", "GetCallTrace failed"); return; } ! if (callFrame.method_id != event->u.method.method_id) { ! PROF_ERROR("METHOD ENTRY", "callFrame.method_id != event->method.method_id"); return; } ! if (!(thread = getThread(event->env_id))) { ! PROF_ERROR("METHOD ENTRY", "Thread not found"); return; } ! entryTime = jvmpiInterface->GetCurrentThreadCpuTime(); ! thread->stack.push(callFrame, entryTime); static int firstTime = 1; --- 41,134 ---- void Prof::event_methodEntry( JVMPI_Event* event) { ! Synchronized sync( dataLock); JVMPI_CallFrame callFrame; JVMPI_CallTrace callTrace; callTrace.env_id = event->env_id; ! callTrace.num_frames = 1; callTrace.frames = &callFrame; ! jvmpiInterface->GetCallTrace( &callTrace, 1); ! if( callTrace.num_frames != 1) { ! ! PROF_ERROR( "METHOD ENTRY", "GetCallTrace failed"); return; } ! ! if( callFrame.method_id != event->u.method.method_id) { ! ! PROF_ERROR( "METHOD ENTRY", "callFrame.method_id != event->method.method_id"); return; } ! Thread* thread = getThread( event->env_id); ! ! if( !thread) { ! ! PROF_ERROR( "METHOD ENTRY", "Thread not found"); return; } ! jlong entryTime = jvmpiInterface->GetCurrentThreadCpuTime(); ! thread->stack.push( callFrame, entryTime); ! ! if( setup.cpu.callTreeEnabled) { ! ! CallTreeItem* current = thread->callTree.current; ! CallTreeItem* p = current; ! ! if( p) { ! ! CallTreeItem* q = p->children.first(); ! while( q) { ! ! if( q->method && q->method->isActive() && *q->method == event->u.method.method_id) break; ! q = p->children.next( q); ! } ! ! if( q) p->children.add( p->children.remove( q)); ! ! p = q; ! } ! ! if( !p) { ! ! Method* m = getMethod( event->u.method.method_id); ! if( m) { ! ! p = new CallTreeItem; ! ! p->method = m; ! p->parent = current; ! ! if( current) current->children.add( p); ! else thread->callTree.root = p; ! } ! } ! ! if( p) { ! ! thread->callTree.current = p; ! current = p; ! p = current->parent; ! ! current->hits++; ! current->startTime = entryTime; ! ! if( p) { ! ! jlong t = entryTime-p->startTime; ! p->pureTime += t; ! ! // while( p) { ! // ! // p->cumulativeTime += t; ! // p = p->parent; ! // } ! } ! } ! } static int firstTime = 1; *************** *** 81,123 **** void Prof::event_methodExit( JVMPI_Event* event) { ! Synchronized sync(dataLock); - Thread* thread; - JVMPI_CallFrame callFrames[MAX_TRACE]; - int numFrames; - jlong exitTime; - jlong totalTime; - jlong pureTime; - CpuStatData* stat; - - if (!(thread = getThread(event->env_id))) { PROF_ERROR("METHOD EXIT", "Thread not found"); return; } ! if (setup.cpu.level == Setup::LEVEL_METHOD) { ! numFrames = 1; ! } ! else numFrames = setup.cpu.traceDepth; - numFrames = thread->stack.getTopCallTrace(numFrames, callFrames); - if (numFrames == 0) { PROF_ERROR("METHOD EXIT", "Empty stack"); return; } ! if (callFrames[0].method_id != event->u.method.method_id) { PROF_ERROR("METHOD EXIT", "top method != event->method.method_id"); return; } ! exitTime = jvmpiInterface->GetCurrentThreadCpuTime(); ! thread->stack.pop(exitTime, totalTime, pureTime); ! if (setup.cpu.threadsEnabled) { ! if (setup.cpu.level == Setup::LEVEL_METHOD) { - if (!(stat = getCpuThreadMethod(event->env_id, callFrames[0].method_id))) { PROF_ERROR("METHOD EXIT", "Cannot get CpuThreadMethod"); return; --- 142,189 ---- void Prof::event_methodExit( JVMPI_Event* event) { ! Synchronized sync( dataLock); ! ! Thread* thread = getThread( event->env_id); ! ! if( !thread) { PROF_ERROR("METHOD EXIT", "Thread not found"); return; } ! int numFrames = setup.cpu.traceDepth; ! JVMPI_CallFrame callFrames[MAX_TRACE]; ! ! if( setup.cpu.level == Setup::LEVEL_METHOD) numFrames = 1; ! ! numFrames = thread->stack.getTopCallTrace( numFrames, callFrames); ! ! if( !numFrames) { PROF_ERROR("METHOD EXIT", "Empty stack"); return; } ! if( callFrames[0].method_id != event->u.method.method_id) { ! PROF_ERROR("METHOD EXIT", "top method != event->method.method_id"); return; } ! jlong exitTime = jvmpiInterface->GetCurrentThreadCpuTime(); ! ! jlong totalTime; ! jlong pureTime; ! thread->stack.pop( exitTime, totalTime, pureTime); ! CpuStatData* stat; ! ! if( setup.cpu.threadsEnabled) { ! ! if( setup.cpu.level == Setup::LEVEL_METHOD) { ! ! if( !(stat = getCpuThreadMethod( event->env_id, callFrames[0].method_id))) { PROF_ERROR("METHOD EXIT", "Cannot get CpuThreadMethod"); return; *************** *** 126,130 **** else { ! if (!(stat = getCpuThreadTrace(event->env_id, numFrames, callFrames))) { PROF_ERROR("METHOD EXIT", "Cannot get CpuThreadTrace"); return; --- 192,197 ---- else { ! if( !(stat = getCpuThreadTrace( event->env_id, numFrames, callFrames))) { ! PROF_ERROR("METHOD EXIT", "Cannot get CpuThreadTrace"); return; *************** *** 133,139 **** } else { - if (setup.cpu.level == Setup::LEVEL_METHOD) { ! if (!(stat = getMethod(callFrames[0].method_id))) { PROF_ERROR("METHOD EXIT", "Method not found"); return; --- 200,208 ---- } else { ! if( setup.cpu.level == Setup::LEVEL_METHOD) { ! ! if( !(stat = getMethod( callFrames[0].method_id))) { ! PROF_ERROR("METHOD EXIT", "Method not found"); return; *************** *** 142,146 **** else { ! if (!(stat = getCpuTrace(numFrames, callFrames))) { PROF_ERROR("METHOD EXIT", "Cannot get CPU trace"); return; --- 211,216 ---- else { ! if( !(stat = getCpuTrace( numFrames, callFrames))) { ! PROF_ERROR("METHOD EXIT", "Cannot get CPU trace"); return; *************** *** 149,152 **** } ! stat->addCpuStat((jlong)1, pureTime); } --- 219,246 ---- } ! stat->addCpuStat( 1, pureTime); ! ! if( setup.cpu.callTreeEnabled) { ! ! CallTreeItem* current = thread->callTree.current; ! ! if( current->method && ! current->method->isActive() && ! *current->method == callFrames[0].method_id) { ! ! jlong t = exitTime-current->startTime; ! current->pureTime += t; ! ! // CallTreeItem* p = current; ! // while( p) { ! // ! // p->cumulativeTime += t; ! // p = p->parent; ! // } ! ! if( current->parent) current->parent->startTime = exitTime; ! ! thread->callTree.current = current->parent; ! } ! } } Index: prof_object.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof_object.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** prof_object.cpp 21 Nov 2001 22:31:45 -0000 1.16 --- prof_object.cpp 10 Feb 2002 18:36:13 -0000 1.17 *************** *** 115,123 **** trace.env_id = envId; ! trace.num_frames = setup.alloc.traceDepth; trace.frames = frames; jvmpiInterface->GetCallTrace(&trace, setup.alloc.traceDepth); ! if (trace.num_frames == (jint)0) { PROF_ERROR("OBJECT ALLOC", "GetCallTrace failed"); return; --- 115,123 ---- trace.env_id = envId; ! trace.num_frames = setup.alloc.traceDepth+1; trace.frames = frames; jvmpiInterface->GetCallTrace(&trace, setup.alloc.traceDepth); ! if (trace.num_frames < 1 || trace.num_frames > setup.alloc.traceDepth) { PROF_ERROR("OBJECT ALLOC", "GetCallTrace failed"); return; |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library/src/setup In directory usw-pr-cvs1:/tmp/cvs-serv5925/src/setup Modified Files: setup.cpp setup.h Log Message: fixes; calltree implementation (for exact cpu profiling) Index: setup.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/setup/setup.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** setup.cpp 31 Jan 2002 12:31:00 -0000 1.8 --- setup.cpp 10 Feb 2002 18:36:14 -0000 1.9 *************** *** 48,51 **** --- 48,52 ---- cpu.traceDepth = 2; cpu.threadsEnabled = 1; + cpu.callTreeEnabled = 1; mon.turnedOn = 1; *************** *** 57,61 **** } ! void Setup::processOptions(char* options) { char option[100]; --- 58,62 ---- } ! void Setup::processOptions( char* options) { char option[100]; *************** *** 63,83 **** int len; ! if (!options) return; ! while (end = strchr(options, ',')) { len = end - options; ! if ((len > 0) && (len < 100)) { ! strncpy(option, options, len); option[len] = '\0'; ! processOption(option); } options = end + 1; } ! len = strlen(options); ! if ((len > 0) && (len < 100)) { ! strcpy(option, options); ! processOption(option); } } --- 64,89 ---- int len; ! if( !options) return; ! while( end = strchr(options, ',')) { len = end - options; ! ! if( (len > 0) && (len < 100)) { ! ! strncpy( option, options, len); option[len] = '\0'; ! processOption( option); } + options = end + 1; } ! len = strlen( options); ! ! if( (len > 0) && (len < 100)) { ! ! strcpy( option, options); ! processOption( option); } } *************** *** 95,98 **** --- 101,105 ---- cout << "build: " << __DATE__ << " " << __TIME__ << endl << endl; } + return; } *************** *** 102,238 **** } ! void Setup::setParameter(char* name, char* value) { ! if (strcmp(name, "alloc") == 0) { ! if (strcmp(value, "on") == 0) ! alloc.turnedOn = 1; ! else if (strcmp(value, "off") == 0) ! alloc.turnedOn = 0; return; } ! if (strcmp(name, "alloc_level") == 0) { ! if (strcmp(value, "object") == 0) ! alloc.level = LEVEL_OBJECT; ! else if (strcmp(value, "method") == 0) ! alloc.level = LEVEL_METHOD; ! else if (strcmp(value, "trace") == 0) ! alloc.level = LEVEL_TRACE; return; } ! if (strcmp(name, "alloc_trace_depth") == 0) { ! int depth = atoi(value); ! if (depth > 0) { ! if (depth > MAX_TRACE) depth = MAX_TRACE; alloc.traceDepth = depth; } return; } ! if (strcmp(name, "alloc_thread") == 0) { ! if (strcmp(value, "on") == 0) ! alloc.threadsEnabled = 1; ! else if (strcmp(value, "off") == 0) ! alloc.threadsEnabled = 0; return; } ! if (strcmp(name, "cpu") == 0) { ! if (strcmp(value, "on") == 0) ! cpu.turnedOn = 1; ! else if (strcmp(value, "off") == 0) ! cpu.turnedOn = 0; return; } ! if (strcmp(name, "cpu_method") == 0) { ! if (strcmp(value, "exact") == 0) ! cpu.sampling = 0; ! else if (strcmp(value, "sampling") == 0) ! cpu.sampling = 1; return; } ! if (strcmp(name, "cpu_level") == 0) { ! if (strcmp(value, "method") == 0) ! cpu.level = LEVEL_METHOD; ! else if (strcmp(value, "trace") == 0) ! cpu.level = LEVEL_TRACE; return; } ! if (strcmp(name, "cpu_trace_depth") == 0) { ! int depth = atoi(value); ! if (depth > 0) { ! if (depth > MAX_TRACE) depth = MAX_TRACE; cpu.traceDepth = depth; } return; } ! if (strcmp(name, "cpu_thread") == 0) { ! if (strcmp(value, "on") == 0) ! cpu.threadsEnabled = 1; ! else if (strcmp(value, "off") == 0) ! cpu.threadsEnabled = 0; return; } ! if (strcmp(name, "mon") == 0) { ! if (strcmp(value, "on") == 0) ! mon.turnedOn = 1; ! else if (strcmp(value, "off") == 0) ! mon.turnedOn = 0; return; } ! if (strcmp(name, "mon_level") == 0) { ! if (strcmp(value, "method") == 0) ! mon.level = LEVEL_METHOD; ! else if (strcmp(value, "trace") == 0) ! mon.level = LEVEL_TRACE; return; } ! if (strcmp(name, "mon_trace_depth") == 0) { ! int depth = atoi(value); ! if (depth > 0) { ! if (depth > MAX_TRACE) depth = MAX_TRACE; mon.traceDepth = depth; } return; } ! if (strcmp(name, "mon_thread") == 0) { ! if (strcmp(value, "on") == 0) ! mon.threadsEnabled = 1; ! else if (strcmp(value, "off") == 0) ! mon.threadsEnabled = 0; return; --- 109,238 ---- } ! void Setup::setParameter( char* name, char* value) { ! if( !strcmp( name, "alloc")) { ! if( !strcmp( value, "on")) alloc.turnedOn = 1; ! else if( !strcmp( value, "off")) alloc.turnedOn = 0; return; } ! if( !strcmp( name, "alloc_level")) { ! if( !strcmp( value, "object")) alloc.level = LEVEL_OBJECT; ! else if( !strcmp( value, "method")) alloc.level = LEVEL_METHOD; ! else if( !strcmp( value, "trace")) alloc.level = LEVEL_TRACE; return; } ! if( !strcmp( name, "alloc_trace_depth")) { ! int depth = atoi( value); ! ! if( depth > 0) { ! if( depth > MAX_TRACE) depth = MAX_TRACE; alloc.traceDepth = depth; } + return; } ! if( !strcmp( name, "alloc_thread")) { ! if( !strcmp( value, "on")) alloc.threadsEnabled = 1; ! else if( !strcmp( value, "off")) alloc.threadsEnabled = 0; return; } ! if( !strcmp( name, "cpu")) { ! if( !strcmp( value, "on")) cpu.turnedOn = 1; ! else if( !strcmp( value, "off")) cpu.turnedOn = 0; return; } ! if( !strcmp( name, "cpu_method")) { ! if( !strcmp( value, "exact")) cpu.sampling = 0; ! else if( !strcmp( value, "sampling")) cpu.sampling = 1; return; } ! if( !strcmp( name, "cpu_level")) { ! if( !strcmp( value, "method")) cpu.level = LEVEL_METHOD; ! else if( !strcmp( value, "trace")) cpu.level = LEVEL_TRACE; return; } ! if( !strcmp( name, "cpu_trace_depth")) { ! int depth = atoi( value); ! ! if( depth > 0) { ! if( depth > MAX_TRACE) depth = MAX_TRACE; cpu.traceDepth = depth; } + return; } ! if( !strcmp( name, "cpu_thread")) { ! if( !strcmp( value, "on")) cpu.threadsEnabled = 1; ! else if( !strcmp( value, "off")) cpu.threadsEnabled = 0; ! ! return; ! } ! ! if( !strcmp( name, "cpu_calltree")) { ! ! if( !strcmp( value, "on")) cpu.callTreeEnabled = 1; ! else if( !strcmp( value, "off")) cpu.callTreeEnabled = 0; return; } ! if( !strcmp( name, "mon")) { ! if( !strcmp( value, "on")) mon.turnedOn = 1; ! else if( !strcmp( value, "off")) mon.turnedOn = 0; return; } ! if( !strcmp( name, "mon_level")) { ! if( !strcmp( value, "method")) mon.level = LEVEL_METHOD; ! else if( !strcmp( value, "trace")) mon.level = LEVEL_TRACE; return; } ! if( !strcmp( name, "mon_trace_depth")) { ! int depth = atoi( value); ! if( depth > 0) { ! ! if( depth > MAX_TRACE) depth = MAX_TRACE; mon.traceDepth = depth; } + return; } ! if( !strcmp( name, "mon_thread")) { ! if( !strcmp( value, "on")) mon.threadsEnabled = 1; ! else if( !strcmp( value, "off")) mon.threadsEnabled = 0; return; Index: setup.h =================================================================== RCS file: /cvsroot/javaprofiler/library/src/setup/setup.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** setup.h 21 Nov 2001 22:31:49 -0000 1.10 --- setup.h 10 Feb 2002 18:36:14 -0000 1.11 *************** *** 114,117 **** --- 114,120 ---- /// whether resolution to threads is enabled int threadsEnabled; + + /// whether calltree is enabled + int callTreeEnabled; }; *************** *** 199,203 **** ** @param options command line options string */ ! void processOptions(char* options); private: --- 202,206 ---- ** @param options command line options string */ ! void processOptions( char* options); private: *************** *** 207,211 **** ** @param option option string */ ! void processOption(char* option); /** Sets parameter. --- 210,214 ---- ** @param option option string */ ! void processOption( char* option); /** Sets parameter. *************** *** 214,218 **** ** @param value parameter value */ ! void setParameter(char* name, char* value); }; --- 217,221 ---- ** @param value parameter value */ ! void setParameter( char* name, char* value); }; |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library/src/calltree In directory usw-pr-cvs1:/tmp/cvs-serv5925/src/calltree Modified Files: callTree.cpp callTreeItem.cpp Log Message: fixes; calltree implementation (for exact cpu profiling) Index: callTree.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/calltree/callTree.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** callTree.cpp 31 Jan 2002 12:30:59 -0000 1.1 --- callTree.cpp 10 Feb 2002 18:36:13 -0000 1.2 *************** *** 61,67 **** while( p) { - p->getBinaryData( b); - q = p; p = p->children.first(); } --- 61,69 ---- while( p) { q = p; + + if( p->method) p->getBinaryData( b); + else break; + p = p->children.first(); } Index: callTreeItem.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/calltree/callTreeItem.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** callTreeItem.cpp 31 Jan 2002 12:30:59 -0000 1.1 --- callTreeItem.cpp 10 Feb 2002 18:36:13 -0000 1.2 *************** *** 49,52 **** b += method->getProfID(); ! b += (jint)children.length(); } --- 49,61 ---- b += method->getProfID(); ! jint count = 0; ! CallTreeItem* p = children.first(); ! ! while( p) { ! ! if( p->method) count++; ! p = children.next( p); ! } ! ! b += count; } |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library/src/hash In directory usw-pr-cvs1:/tmp/cvs-serv5925/src/hash Modified Files: hash.h Log Message: fixes; calltree implementation (for exact cpu profiling) Index: hash.h =================================================================== RCS file: /cvsroot/javaprofiler/library/src/hash/hash.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** hash.h 21 Nov 2001 22:31:43 -0000 1.21 --- hash.h 10 Feb 2002 18:36:13 -0000 1.22 *************** *** 219,223 **** if( !item) return NULL; - item->L::remove(); _numItems--; --- 219,222 ---- |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library/src/alloc In directory usw-pr-cvs1:/tmp/cvs-serv5925/src/alloc Modified Files: allocObjectMethod.cpp allocObjectTrace.cpp allocThreadObject.cpp Log Message: fixes; calltree implementation (for exact cpu profiling) Index: allocObjectMethod.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/alloc/allocObjectMethod.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** allocObjectMethod.cpp 21 Nov 2001 22:31:41 -0000 1.12 --- allocObjectMethod.cpp 10 Feb 2002 18:36:13 -0000 1.13 *************** *** 73,77 **** void AllocObjectMethod::deactivate() { ! Prof::prof().activeAllocObjectMethods.removeNoRehash(this); AllocObjectTrace* ot = objectTraces.first(); --- 73,77 ---- void AllocObjectMethod::deactivate() { ! Prof::prof().activeAllocObjectMethods.removeNoRehash(this); AllocObjectTrace* ot = objectTraces.first(); *************** *** 96,100 **** int AllocObjectMethod::hashKey(const AllocObjectMethodKey& key) { ! return AllocObject::hashKey(key.objectKey) ^ Method::hashKey(key.methodId); } --- 96,100 ---- int AllocObjectMethod::hashKey(const AllocObjectMethodKey& key) { ! return Method::hashKey(key.methodId); // don't use AllocObject::hashKey() for hashing !!! } Index: allocObjectTrace.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/alloc/allocObjectTrace.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** allocObjectTrace.cpp 21 Nov 2001 22:31:41 -0000 1.12 --- allocObjectTrace.cpp 10 Feb 2002 18:36:13 -0000 1.13 *************** *** 91,95 **** int AllocObjectTrace::hashKey(const AllocObjectTraceKey& key) { ! return AllocObject::hashKey(key.objectKey) ^ Trace::hashKey(key.traceKey); } --- 91,95 ---- int AllocObjectTrace::hashKey(const AllocObjectTraceKey& key) { ! return Trace::hashKey(key.traceKey); // don't use AllocObject::hashKey() for hashing !!! } Index: allocThreadObject.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/alloc/allocThreadObject.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** allocThreadObject.cpp 21 Nov 2001 22:31:41 -0000 1.14 --- allocThreadObject.cpp 10 Feb 2002 18:36:13 -0000 1.15 *************** *** 96,100 **** int AllocThreadObject::hashKey(const AllocThreadObjectKey& key) { ! return Thread::hashKey(key.envId) ^ AllocObject::hashKey(key.objectKey); } --- 96,100 ---- int AllocThreadObject::hashKey(const AllocThreadObjectKey& key) { ! return Thread::hashKey(key.envId); // don't use AllocObject::hashKey() for hashing !!! } |
From: Marek P. <ma...@us...> - 2002-02-10 18:36:16
|
Update of /cvsroot/javaprofiler/library In directory usw-pr-cvs1:/tmp/cvs-serv5925 Modified Files: README Log Message: fixes; calltree implementation (for exact cpu profiling) Index: README =================================================================== RCS file: /cvsroot/javaprofiler/library/README,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -r1.35 -r1.36 *** README 31 Jan 2002 12:30:59 -0000 1.35 --- README 10 Feb 2002 18:36:13 -0000 1.36 *************** *** 405,408 **** --- 405,411 ---- default: on + cpu_calltree {on|off} cpu calltree build + default: on + mon {on|off} turn monitor profiling on/off default: on |
From: Lukas P. <pe...@us...> - 2002-02-08 13:18:42
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data In directory usw-pr-cvs1:/tmp/cvs-serv513/net/sourceforge/javaprofiler/jpiimpl/data Modified Files: IDObjectData.java Log Message: implements Serializable Index: IDObjectData.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data/IDObjectData.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** IDObjectData.java 27 Dec 2001 14:07:56 -0000 1.3 --- IDObjectData.java 8 Feb 2002 13:18:38 -0000 1.4 *************** *** 21,24 **** --- 21,26 ---- package net.sourceforge.javaprofiler.jpiimpl.data; + import java.io.Serializable; + /** * Object with unique ID. *************** *** 26,30 **** * @author Jan Stola */ ! public abstract class IDObjectData { /** Unique ID. */ private int ID; --- 28,32 ---- * @author Jan Stola */ ! public abstract class IDObjectData implements Serializable { /** Unique ID. */ private int ID; *************** *** 62,65 **** --- 64,70 ---- /* * $Log$ + * Revision 1.4 2002/02/08 13:18:38 petrul + * implements Serializable + * * Revision 1.3 2001/12/27 14:07:56 vachis * no message |
From: Pavel V. <va...@us...> - 2002-02-08 10:59:52
|
Update of /cvsroot/javaprofiler/test/snapshot In directory usw-pr-cvs1:/tmp/cvs-serv10669 Modified Files: run1.bat Log Message: fix Index: run1.bat =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/run1.bat,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** run1.bat 30 Jan 2002 00:23:20 -0000 1.4 --- run1.bat 8 Feb 2002 10:59:48 -0000 1.5 *************** *** 3,5 **** SET CLASSPATH=%JAVA_HOME%\demo\jfc\Notepad\Notepad.jar;%CLASSPATH% set path=%JAVA_HOME%\bin;%path% ! java -Xrun..\library\src\profiler\profiler:commun_type=socket Notepad rem > out1.txt --- 3,5 ---- SET CLASSPATH=%JAVA_HOME%\demo\jfc\Notepad\Notepad.jar;%CLASSPATH% set path=%JAVA_HOME%\bin;%path% ! java -Xrun..\..\library\src\profiler\profiler:commun_type=socket Notepad > out1.txt |
From: Lukas P. <pe...@us...> - 2002-02-08 10:13:23
|
Update of /cvsroot/javaprofiler/test/snapshot In directory usw-pr-cvs1:/tmp/cvs-serv1802 Added Files: DebugOutput.java Log Message: moved from jpiimpl module --- NEW FILE: DebugOutput.java --- /* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License Version * 1.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is available at http://www.sun.com/ * * The Original Code is the Java Profiler module. * The Initial Developers of the Original Code are Jan Stola, Pavel Vacha, * Michal Pise, Petr Luner, Lukas Petru and Marek Przeczek. * Portions created by Jan Stola are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Pavel Vacha are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Michal Pise are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Petr Luner are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Lukas Petru are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Marek Przeczek are Copyright (C) 2000-2001. All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ import java.util.*; import net.sourceforge.javaprofiler.jpiimpl.data.*; import net.sourceforge.javaprofiler.jpiimpl.commun.IProf; /** Sample class that prints Snapshot data in textual form. */ public class DebugOutput { /** Print snapshot data to System.out. * @param sn SnapshotImpl data to print. */ public static void print (SnapshotImpl sn) { // classes list, ClassData object type Iterator it = sn.classes().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); System.out.println("CLASS = " + c.getName()); System.out.println(); System.out.println("METHODS:"); Iterator itM = c.getMethods().iterator(); while (itM.hasNext()) { MethodData m = (MethodData) itM.next(); System.out.println(m.getName() + " SIGN = " + m.getSignature() ); System.out.println(); } System.out.println("INSTANCE FIELDS:"); Iterator itI = c.getInstanceFields().iterator(); while (itI.hasNext()) { ClassFieldData f = (ClassFieldData) itI.next(); System.out.println(f.getName() + " SIGN = " + f.getSignature() ); System.out.println(); } System.out.println("STATIC FIELDS:"); Iterator itS = c.getStaticFields().iterator(); while (itS.hasNext()) { ClassFieldData f = (ClassFieldData) itS.next(); System.out.println(f.getName() + " SIGN = " + f.getSignature() ); System.out.println(); } } // groupThreads list, ThreadGroupData object type it = sn.groupOfThreads().iterator(); while (it.hasNext()) { ThreadGroupData g = (ThreadGroupData) it.next(); System.out.println("GROUP = " + g.getName()); Iterator itT = g.getThreads().iterator(); while (itT.hasNext()) { ThreadData th = (ThreadData) itT.next(); System.out.println(th.getName() + " : "); } } // objectTypes list, AllocClassData object type it = sn.allocObjects().iterator(); while (it.hasNext()) { AllocClassData o = (AllocClassData) it.next(); System.out.println("OBJECT TYPE:"); ClassData c = o.getClassData(); if (c != null) System.out.println("CLASS = " + c.getName()); System.out.println("IS_ARRAY = "); String s; switch (o.getType()) { case IProf.JVMPI_NORMAL_OBJECT: s = "JVMPI_NORMAL_OBJECT"; break; case IProf.JVMPI_CLASS: s = "JVMPI_CLASS"; break; case IProf.JVMPI_BOOLEAN: s = "JVMPI_BOOLEAN"; break; case IProf.JVMPI_BYTE: s = "JVMPI_BYTE"; break; case IProf.JVMPI_CHAR: s = "JVMPI_CHAR"; break; case IProf.JVMPI_SHORT: s = "JVMPI_SHORT"; break; case IProf.JVMPI_INT: s = "JVMPI_INT"; break; case IProf.JVMPI_LONG: s = "JVMPI_LONG"; break; case IProf.JVMPI_FLOAT: s = "JVMPI_FLOAT"; break; case IProf.JVMPI_DOUBLE: s = "JVMPI_DOUBLE"; break; default: s = null; break; } System.out.println(s); System.out.println(); } // arenas list, AllocArenaData object type // FIX arenas() it = sn.arenas().iterator(); while (it.hasNext()) { AllocArenaData a = (AllocArenaData) it.next(); System.out.println("ARENA = " + a.getName()); System.out.println(); } // instances are N/A from IProf! // leaving blank // gcs list, GCData object type // FIX gcs() it = sn.gcs().iterator(); while (it.hasNext()) { GCData g = (GCData) it.next(); System.out.println("GC:"); System.out.println("start: " + g.getStartTime()); System.out.println("end: " + g.getEndTime()); } // jniGlobalRefs and jniWeakGlobalRefs are N/A from IProf! // leaving blank // Hash Statistics are N/A. // leaving blank // Total summary int totalClasses = 0; int totalMethods = 0; int totalAllocTraces = 0; int totalAllocObjects = 0; int totalAllocObjectMethods = 0; int totalAllocObjectTraces = 0; int totalThreads = 0; int totalAllocThreadObjects = 0; int totalAllocThreadObjectMethods = 0; int totalAllocThreadObjectTraces = 0; int totalAllocThreadMethods = 0; int totalAllocThreadTraces = 0; int totalCpuTraces = 0; int totalCpuThreadMethods = 0; int totalCpuThreadTraces = 0; int totalMonTraces = 0; int totalMonThreadMethods = 0; int totalMonThreadTraces = 0; it = sn.classes().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); Iterator itM = c.getMethods().iterator(); while (itM.hasNext()) { MethodData m = (MethodData) itM.next(); Iterator itT = m.getAllocTraces().values().iterator(); while (itT.hasNext()) { AllocTraceData t = (AllocTraceData) itT.next(); totalAllocTraces ++; } itT = m.getCPUTraces().values().iterator(); while (itT.hasNext()) { CPUTraceData t = (CPUTraceData) itT.next(); totalCpuTraces ++; } itT = m.getMonTraces().values().iterator(); while (itT.hasNext()) { MonTraceData t = (MonTraceData) itT.next(); totalMonTraces ++; } totalMethods ++; } totalClasses ++; } it = sn.allocObjects().iterator(); while (it.hasNext()) { AllocClassData a = (AllocClassData) it.next(); Iterator itM = a.getMethods().values().iterator(); while (itM.hasNext()) { AllocClassMethodData m = (AllocClassMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { AllocClassTraceData t = (AllocClassTraceData) itT.next(); totalAllocObjectTraces ++; } totalAllocObjectMethods ++; } totalAllocObjects ++; } it = sn.threads().iterator(); while (it.hasNext()) { ThreadData th = (ThreadData) it.next(); Iterator itA = th.getClasses().values().iterator(); while (itA.hasNext()) { AllocThreadClassData a = (AllocThreadClassData) itA.next(); Iterator itM = a.getMethods().values().iterator(); while (itM.hasNext()) { AllocThreadClassMethodData m = (AllocThreadClassMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { AllocThreadClassTraceData t = (AllocThreadClassTraceData) itT.next(); totalAllocThreadObjectTraces ++; } totalAllocThreadObjectMethods ++; } totalAllocThreadObjects ++; } Iterator itM = th.getAllocMethods().values().iterator(); while (itM.hasNext()) { AllocThreadMethodData m = (AllocThreadMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { AllocThreadTraceData t = (AllocThreadTraceData) itT.next(); totalAllocThreadTraces ++; } totalAllocThreadMethods ++; } itM = th.getCPUMethods().values().iterator(); while (itM.hasNext()) { CPUThreadMethodData m = (CPUThreadMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { CPUThreadTraceData t = (CPUThreadTraceData) itT.next(); totalCpuThreadTraces ++; } totalCpuThreadMethods ++; } itM = th.getMonMethods().values().iterator(); while (itM.hasNext()) { MonThreadMethodData m = (MonThreadMethodData) itM.next(); Iterator itT = m. getTraces().values().iterator(); while (itT.hasNext()) { MonThreadTraceData t = (MonThreadTraceData) itT.next(); totalMonThreadTraces ++; } totalMonThreadMethods ++; } totalThreads ++; } System.out.println("TOTALS:"); System.out.println(); System.out.println("Classes: " + totalClasses); System.out.println("Methods: " + totalMethods); System.out.println("Threads: " + totalThreads); System.out.println(); System.out.println("AllocObject: " + totalAllocObjects); System.out.println("AllocThreadObject: " + totalAllocThreadObjects); System.out.println(); System.out.println("AllocObjectMethod: " + totalAllocObjectMethods); System.out.println("AllocThreadMethod: " + totalAllocThreadMethods); System.out.println("AllocThreadObjectMethod: " + totalAllocThreadObjectMethods); System.out.println(); System.out.println("AllocTrace: " + totalAllocTraces); System.out.println("AllocObjectTrace: " + totalAllocObjectTraces); System.out.println("AllocThreadTrace: " + totalAllocThreadTraces); System.out.println("AllocThreadObjectTrace: " + totalAllocThreadObjectTraces); System.out.println(); System.out.println("CpuThreadMethod: " + totalCpuThreadMethods); System.out.println(); System.out.println("CpuTrace: " + totalCpuTraces); System.out.println("CpuThreadTrace: " + totalCpuThreadTraces); System.out.println(); System.out.println("MonThreadMethod: " + totalMonThreadMethods); System.out.println(); System.out.println("MonTrace: " + totalMonTraces); System.out.println("MonThreadTrace: " + totalMonThreadTraces); System.out.println(); } } /* * $Log: DebugOutput.java,v $ * Revision 1.1 2002/02/08 10:13:20 petrul * moved from jpiimpl module * * Revision 1.1 2002/01/24 22:16:31 petrul * First version of DebugOutput * */ |
From: Lukas P. <pe...@us...> - 2002-02-08 10:12:29
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl In directory usw-pr-cvs1:/tmp/cvs-serv1610 Removed Files: DebugOutput.java Log Message: moved to test module --- DebugOutput.java DELETED --- |
From: Pavel V. <va...@us...> - 2002-02-05 01:18:35
|
Update of /cvsroot/javaprofiler/jpiimpl In directory usw-pr-cvs1:/tmp/cvs-serv15310 Modified Files: build.xml Log Message: doxygen fix Index: build.xml =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/build.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** build.xml 2002/01/31 22:58:52 1.5 --- build.xml 2002/02/05 01:18:29 1.6 *************** *** 3,8 **** <!-- configuration ************************************************** --> ! <path id="project.doxygen.dir" location="D:\Program Files\doxygen-1.2.12"/> ! <path id="project.doxygen.exec" location="${project.doxygen.dir}\bin\doxygen.exe"/> <!-- end of configuration ******************************************* --> --- 3,10 ---- <!-- configuration ************************************************** --> ! ! <!-- doxygen --> ! <property name="doxygen_dir" location="D:\Program Files\doxygen-1.2.12"/> ! <property name="doxygen_exec" location="${doxygen_dir}\bin\doxygen.exe"/> <!-- end of configuration ******************************************* --> *************** *** 24,27 **** --- 26,30 ---- </patternset> + <target name="init"> <!-- You can set up any variables you want used throughout the script here. --> *************** *** 30,34 **** ! <!-- <target depends="init" name="interface"> <javac debug="true" failonerror="true" srcdir="interface/net"> <classpath> --- 33,37 ---- ! <!-- <target name="interface" depends="init"> <javac debug="true" failonerror="true" srcdir="interface/net"> <classpath> *************** *** 44,48 **** ! <target depends="init" name="compile"> <property name="cp" refid="project.classpath"/> <echo message="Classpath is ${cp}"/> --- 47,51 ---- ! <target name="compile" depends="init" description="Compile .java files"> <property name="cp" refid="project.classpath"/> <echo message="Classpath is ${cp}"/> *************** *** 56,60 **** ! <target depends="init,compile" name="jar"> <!-- To make a standalone app: --> <!-- 1. Create a myapp.mf manifest somewhere. --> --- 59,63 ---- ! <target name="jar" depends="init,compile" description="Create .jar"> <!-- To make a standalone app: --> <!-- 1. Create a myapp.mf manifest somewhere. --> *************** *** 78,82 **** ! <target depends="init,jar,javadoc,doxygen" description="Build everything." name="all"> <echo message="Application built. "/> </target> --- 81,85 ---- ! <target name="all" depends="init,jar,javadoc,doxygen" description="Build everything."> <echo message="Application built. "/> </target> *************** *** 96,100 **** ! <target depends="init" description="Javadoc for my API." name="javadoc"> <mkdir dir="jpiimpl/docs/javadoc"/> <javadoc Windowtitle="JPI and Implementation" defaultexcludes="yes" destdir="jpiimpl/docs/javadoc" --- 99,103 ---- ! <target name="javadoc" depends="init" description="Javadoc for my API."> <mkdir dir="jpiimpl/docs/javadoc"/> <javadoc Windowtitle="JPI and Implementation" defaultexcludes="yes" destdir="jpiimpl/docs/javadoc" *************** *** 106,110 **** <!-- <group title="Group 1 Packages" packages="net.sourceforge.javaprofiler.jpi*"/> ! <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*:net*"/> --> <!-- <group title="Java Profiling Interface" > --- 109,113 ---- <!-- <group title="Group 1 Packages" packages="net.sourceforge.javaprofiler.jpi*"/> ! <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*:net*"/> --> <!-- <group title="Java Profiling Interface" > *************** *** 123,133 **** ! <target depends="init" description="Doxygen documentation for my API." name="doxygen"> ! <exec executable="doxygen" dir="jpiimpl/docs" failonerror="false"> <!-- <arg line=""/> <arg vaule=""/> <arg path=""> --> <arg file="jpiimpl/docs/doc_html.conf"/> </exec> ! <exec executable="doxygen" dir="jpiimpl/docs" failonerror="false"> <arg file="jpiimpl/docs/doc_latex.conf"/> </exec> --- 126,137 ---- ! <target name="doxygen" depends="init" description="Doxygen documentation for my API."> ! <echo message="executing: ${doxygen_exec}"/> ! <exec executable="${doxygen_exec}" dir="jpiimpl/docs" failonerror="false"> <!-- <arg line=""/> <arg vaule=""/> <arg path=""> --> <arg file="jpiimpl/docs/doc_html.conf"/> </exec> ! <exec executable="${doxygen_exec}" dir="jpiimpl/docs" failonerror="false"> <arg file="jpiimpl/docs/doc_latex.conf"/> </exec> *************** *** 135,139 **** ! <target depends="init" description="Clean all build products." name="clean"> <delete> <fileset dir="jpiimpl"> --- 139,143 ---- ! <target name="clean" depends="init" description="Clean all build products."> <delete> <fileset dir="jpiimpl"> |
From: Pavel V. <va...@us...> - 2002-01-31 22:58:55
|
Update of /cvsroot/javaprofiler/jpiimpl In directory usw-pr-cvs1:/tmp/cvs-serv13886 Modified Files: build.xml Log Message: doxygen added Index: build.xml =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/build.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** build.xml 2002/01/31 06:03:43 1.4 --- build.xml 2002/01/31 22:58:52 1.5 *************** *** 100,104 **** <javadoc Windowtitle="JPI and Implementation" defaultexcludes="yes" destdir="jpiimpl/docs/javadoc" group="JPI net.sourceforge.javaprofiler.jpi*,Implementation net.sourceforge.javaprofiler.jpiimpl*" ! private="on"> <doctitle>Java Profiling Interface and Implementation</doctitle> <package name="net.sourceforge.javaprofiler.jpiimpl.*"/> --- 100,104 ---- <javadoc Windowtitle="JPI and Implementation" defaultexcludes="yes" destdir="jpiimpl/docs/javadoc" group="JPI net.sourceforge.javaprofiler.jpi*,Implementation net.sourceforge.javaprofiler.jpiimpl*" ! private="on" failonerror="false"> <doctitle>Java Profiling Interface and Implementation</doctitle> <package name="net.sourceforge.javaprofiler.jpiimpl.*"/> *************** *** 124,133 **** <target depends="init" description="Doxygen documentation for my API." name="doxygen"> ! <mkdir dir="jpiimpl/docs/doxygen"/> ! <!-- <exec executable="doxygen" failonerro="no"> //+params for os ! <arg line=""/> ! <arg vaule=""/> ! <arg path=""/> ! </exec> --> </target> --- 124,135 ---- <target depends="init" description="Doxygen documentation for my API." name="doxygen"> ! <exec executable="doxygen" dir="jpiimpl/docs" failonerror="false"> ! <!-- <arg line=""/> ! <arg vaule=""/> <arg path=""> --> ! <arg file="jpiimpl/docs/doc_html.conf"/> ! </exec> ! <exec executable="doxygen" dir="jpiimpl/docs" failonerror="false"> ! <arg file="jpiimpl/docs/doc_latex.conf"/> ! </exec> </target> *************** *** 146,150 **** <delete file="jpiimpl/jpiimpl.jar"/> <delete dir="jpiimpl/docs/javadoc"/> ! <delete dir="jpiimpl/docs/doxygen"/> </target> --- 148,153 ---- <delete file="jpiimpl/jpiimpl.jar"/> <delete dir="jpiimpl/docs/javadoc"/> ! <delete dir="jpiimpl/docs/html"/> ! <delete dir="jpiimpl/docs/latex"/> </target> |
From: Pavel V. <va...@us...> - 2002-01-31 22:58:03
|
Update of /cvsroot/javaprofiler/jpiimpl/docs In directory usw-pr-cvs1:/tmp/cvs-serv13197 Added Files: doc_html.conf doc_latex.conf Log Message: generation of documentation by doxygen --- NEW FILE: doc_html.conf --- # Doxyfile 1.2.10 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "Java Profiler Interface and Implementation" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, # German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, # Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a class diagram (in Html and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. CLASS_DIAGRAMS = YES # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = NO # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../net # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. FILE_PATTERNS = *.java # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command <filter> <input-file>, where <filter> # is the value of the INPUT_FILTER tag, and <input-file> is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse. FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = YES # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Netscape 4.0+ # or Internet explorer 4.0+). GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = USE_RAW_MONITORS USE_ALLOCATOR # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = --- NEW FILE: doc_latex.conf --- # Doxyfile 1.2.10 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "Java Profiler Interface and Implementation" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, # German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, # Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a class diagram (in Html and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. CLASS_DIAGRAMS = YES # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = NO # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../net # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. FILE_PATTERNS = *.java # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command <filter> <input-file>, where <filter> # is the value of the INPUT_FILTER tag, and <input-file> is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse. FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = NO # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = YES # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Netscape 4.0+ # or Internet explorer 4.0+). GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = USE_RAW_MONITORS USE_ALLOCATOR # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = #--------------------------------------------------------------------------- # Configuration options related to the dot tool #---------------------------------... [truncated message content] |
From: Marek P. <ma...@us...> - 2002-01-31 12:32:51
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/commun In directory usw-pr-cvs1:/tmp/cvs-serv27735/net/sourceforge/javaprofiler/jpiimpl/commun Modified Files: IProf.java Log Message: calltree Index: IProf.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/commun/IProf.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** IProf.java 2001/12/09 16:50:42 1.9 --- IProf.java 2002/01/31 12:32:47 1.10 *************** *** 151,154 **** --- 151,157 ---- private static final int F_RUN_GC = 11; + /// remote getCallTree() method identifier + private static final int F_GET_CALLTREE = 12; + /// internal I/O buffer private Buffer _buf = new Buffer(); *************** *** 2038,2041 **** --- 2041,2183 ---- return false; } + } + + /** One item of calltree. It contains all possible + ** data we can gain - cumulative time and pure time and + ** number of hits (how many times the method in given + ** position in the stack calltree was called). + ** Calltree shows us the order how methods were called. */ + + public class sCallTree { + + /// time spent in the method (including sub-calls) + public long cumulativeTime; + + /// number of calls of the method + public long hits; + + /// time spent in the method (excluding sub-calls) + public long pureTime; + + /// internal ID of method + public int methodInfoId; + + /// internal ID of method + public int methodObjId; + + /** methods called by this method + ** (list of sCallTree objects) */ + + public LinkedList children; + + /// number of children + public int numOfChildren; + }; + + /** Get item of calltree from buffer. This method grabs one + ** item of calltree from binary buffer and transforms data + ** to sCallTree structure. + ** + ** @param b binary buffer + ** @param offset offset where data start in the buffer + ** @param ct output structure + ** + ** @return position of next item in the buffer */ + + private int getCallTreeItem( Buffer b, int offset, sCallTree ct) { + + ct.cumulativeTime = b.getLong( offset); + offset += 8; + + ct.hits = b.getLong( offset); + offset += 8; + + ct.pureTime = b.getLong( offset); + offset += 8; + + ct.methodInfoId = b.getInt( offset); + offset += 4; + + ct.methodObjId = b.getInt( offset); + offset += 4; + + ct.numOfChildren = b.getInt( offset); + offset += 4; + + return offset; + } + + /** Get subtree of calltree. This method recursively returns + ** the whole calltree - grabs it from binary buffer and stores + ** it as a tree of sCallTree structures. + ** + ** @param b buffer with binary data + ** @param offset position of data in the buffer + ** @param ct output structure - root of the subtree + ** + ** @return position of next item in the buffer */ + + private int getCallTree( Buffer b, int offset, sCallTree ct) { + + offset = getCallTreeItem( b, offset, ct); + + int num = ct.numOfChildren; + + while( num > 0) { + + sCallTree nct = new sCallTree(); + offset = getCallTree( b, offset, nct); + + if( ct.children == null) ct.children = new LinkedList(); + + ct.children.addLast( nct); + num--; + } + + return offset; + } + + /** Get calltree. This method returns the whole calltree + ** of methods for given thread. + ** + ** @param threadObjId thread's object ID + ** + ** @return == null (calltree is empty); + ** != null (a reference to the root of calltree) */ + + public synchronized sCallTree getCallTree( int threadObjId) + + throws COMMUN_Exception, + BAD_OBJ_ID_Exception, + UNKNOWN_Exception { + + _buf.clear(); + _buf.putInt( F_GET_CALLTREE); + _buf.putInt( threadObjId); + + _commun.write( _buf); + if( _commun.hasFailed()) throw new COMMUN_Exception(); + + _commun.read( _buf); + if( _commun.hasFailed()) throw new COMMUN_Exception(); + + int pos = 0; + + int rc = _buf.getInt( pos); + pos += 4; + + if( rc != RC_OK) { + + if( rc == RC_BAD_OBJ_ID) throw new BAD_OBJ_ID_Exception(); + + throw new UNKNOWN_Exception(); + } + + if( _buf.getSize() == 4) return null; + + sCallTree root = new sCallTree(); + getCallTree( _buf, pos, root); + + return root; } }; |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:34
|
Update of /cvsroot/javaprofiler/library/src/main In directory usw-pr-cvs1:/tmp/cvs-serv27034/src/main Modified Files: includes.h Log Message: calltree Index: includes.h =================================================================== RCS file: /cvsroot/javaprofiler/library/src/main/includes.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -r1.30 -r1.31 *** includes.h 2002/01/30 00:26:22 1.30 --- includes.h 2002/01/31 12:31:00 1.31 *************** *** 90,93 **** --- 90,95 ---- class AllocTrace; class Buffer; + class CallTree; + class CallTreeItem; class Class; class ClassField; |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:33
|
Update of /cvsroot/javaprofiler/library/src/prof In directory usw-pr-cvs1:/tmp/cvs-serv27034/src/prof Modified Files: prof.h prof_jniref.cpp Log Message: calltree Index: prof.h =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof.h,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -r1.39 -r1.40 *** prof.h 2001/12/01 18:15:35 1.39 --- prof.h 2002/01/31 12:31:00 1.40 *************** *** 49,52 **** --- 49,53 ---- #include "../alloc/allocGlobalRef.h" #include "../gc/gc.h" + #include "../commun/buffer.h" /** Main profiler library class. It encapsulates all used event handlers, *************** *** 944,947 **** --- 945,958 ---- virtual void runGC(); + + /** Get calltree. This method returns a calltree of given thread. + ** The calltree is returned in appropriate binary format. Return code + ** is in first 4 bytes (jint) - RC_OK (ok) or RC_BAD_OBJ_ID (bad ID). + ** + ** @param threadObjId thread ID + ** @param b output buffer */ + + virtual void getCallTree( objectID threadObjId, // in (jint) + Buffer& b); // out private: Index: prof_jniref.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/prof/prof_jniref.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** prof_jniref.cpp 2001/11/21 22:31:44 1.7 --- prof_jniref.cpp 2002/01/31 12:31:00 1.8 *************** *** 66,70 **** if (r) { jniGlobalRefs.remove(r); ! delete r; } } --- 66,70 ---- if (r) { jniGlobalRefs.remove(r); ! r->destroy(); } } *************** *** 98,102 **** if (r) { jniWeakGlobalRefs.remove(r); ! delete r; } } --- 98,102 ---- if (r) { jniWeakGlobalRefs.remove(r); ! r->destroy(); } } |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:33
|
Update of /cvsroot/javaprofiler/library/src/commun In directory usw-pr-cvs1:/tmp/cvs-serv27034/src/commun Modified Files: iprof.cpp iprof.h Log Message: calltree Index: iprof.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/commun/iprof.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** iprof.cpp 2001/12/09 16:49:32 1.12 --- iprof.cpp 2002/01/31 12:30:59 1.13 *************** *** 61,64 **** --- 61,65 ---- _func[F_DISABLE_GC] = &IProf::_disableGC; _func[F_RUN_GC] = &IProf::_runGC; + _func[F_GET_CALLTREE] = &IProf::_getCallTree; if( setup.com.communType == Setup::COMMUN_SOCKET) *************** *** 273,275 **** --- 274,287 ---- runGC(); b.clear(); + } + + void IProf::_getCallTree( Buffer& b) { + + const char* buf = b.getBuffer()+sizeof( jint); // jump the "action" field + + jint threadObjId = ntohl( *(const jint*)buf); + + b.clear(); + + getCallTree( threadObjId, b); } Index: iprof.h =================================================================== RCS file: /cvsroot/javaprofiler/library/src/commun/iprof.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** iprof.h 2001/11/28 00:02:40 1.14 --- iprof.h 2002/01/31 12:30:59 1.15 *************** *** 67,71 **** /// number of methods of the interface ! FUNC_COUNT = 12 }; --- 67,71 ---- /// number of methods of the interface ! FUNC_COUNT = 13 }; *************** *** 151,155 **** /// runGC() ! F_RUN_GC = 11 }; --- 151,158 ---- /// runGC() ! F_RUN_GC = 11, ! ! /// getCallTree() ! F_GET_CALLTREE = 12 }; *************** *** 566,570 **** ** @param b in/out buffer ** ! ** @see disableGC(), runGC() */ void _enableGC( Buffer& b); --- 569,573 ---- ** @param b in/out buffer ** ! ** @see enableGC() */ void _enableGC( Buffer& b); *************** *** 577,581 **** ** @param b in/out buffer ** ! ** @see enableGC(), runGC() */ void _disableGC( Buffer& b); --- 580,584 ---- ** @param b in/out buffer ** ! ** @see disableGC() */ void _disableGC( Buffer& b); *************** *** 588,595 **** ** @param b in/out buffer ** ! ** @see enableGC(), disableGC() */ void _runGC( Buffer& b); private: --- 591,608 ---- ** @param b in/out buffer ** ! ** @see runGC() */ void _runGC( Buffer& b); + /** Get calltree. This method processes in/out buffer, + ** gains arguments and calls getCallTree() method. When + ** finished, in 'b' there is binary output of called method. + ** + ** @param b in/out buffer + ** + ** @see getCallTree() */ + + void _getCallTree( Buffer& b); + private: *************** *** 696,699 **** --- 709,720 ---- virtual void runGC() = 0; + + /** Get calltree. An abstract method implemented + ** by Prof class. + ** + ** @see Prof::getCallTree(), Prof */ + + virtual void getCallTree( objectID threadObjId, // in (jint) + Buffer& b) = 0; // out private: |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:33
|
Update of /cvsroot/javaprofiler/library/src/commun2 In directory usw-pr-cvs1:/tmp/cvs-serv27034/src/commun2 Modified Files: prof_interface.cpp Log Message: calltree Index: prof_interface.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/commun2/prof_interface.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** prof_interface.cpp 2001/12/09 21:09:09 1.16 --- prof_interface.cpp 2002/01/31 12:31:00 1.17 *************** *** 57,60 **** --- 57,61 ---- #include "../mon/monThreadTrace.h" #include "../mon/monTrace.h" + #include "../calltree/callTree.h" void Prof::shutdown() { *************** *** 1160,1162 **** --- 1161,1188 ---- communLock.wait(); gcLock.release(); + } + + void Prof::getCallTree( objectID threadObjId, // in (jint) + Buffer& b) { // out + + Synchronized sync( dataLock, 0); + if( !shuttingDown && !threadsSuspended) sync.enter(); + + ObjectTable* o = Counter::getCounter()->table.get( threadObjId); + if( !o) { + + b += (jint)RC_BAD_OBJ_ID; + return; + } + + IdObject* p = o->obj; + if( !p ->isOfType( IdObject::THREAD)) { + + b += (jint)RC_BAD_OBJ_ID; + return; + } + + b += (jint)RC_OK; + + (static_cast<Thread*>( p))->callTree.getBinaryData( b); } |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:33
|
Update of /cvsroot/javaprofiler/library/src In directory usw-pr-cvs1:/tmp/cvs-serv27034/src Modified Files: Makefile.rules dir.info Log Message: calltree Index: Makefile.rules =================================================================== RCS file: /cvsroot/javaprofiler/library/src/Makefile.rules,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** Makefile.rules 2001/11/21 22:31:39 1.9 --- Makefile.rules 2002/01/31 12:30:59 1.10 *************** *** 31,34 **** --- 31,50 ---- $(MAKE) $(MFLAGS) allocator clean + calltree.dir: + cd calltree + $(MAKE) $(MFLAGS) + cd .. + + calltree.dir.2: + $(MAKE) $(MFLAGS) calltree + + calltree.clean: + cd calltree + $(MAKE) $(MFLAGS) clean + cd .. + + calltree.clean.2: + $(MAKE) $(MFLAGS) calltree clean + commun.dir: cd commun Index: dir.info =================================================================== RCS file: /cvsroot/javaprofiler/library/src/dir.info,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** dir.info 2001/11/21 22:31:40 1.15 --- dir.info 2002/01/31 12:30:59 1.16 *************** *** 1,9 **** ! DIRS = profiler alloc allocator commun commun2 commun3 cpu delay gc list main \ ! mon prof setup shared string FILES = do_link ! OBJ_FILES = profiler/*.o* alloc/*.o* allocator/*.o* commun/*.o* commun2/*.o* \ ! commun3/*.o* cpu/*.o* delay/*.o* gc/*.o* list/*.o* main/*.o* \ ! mon/*.o* prof/*.o* setup/*.o* shared/*.o* string/*.o* --- 1,9 ---- ! DIRS = profiler alloc allocator calltree commun commun2 commun3 cpu delay gc \ ! list main mon prof setup shared string FILES = do_link ! OBJ_FILES = profiler/*.o* alloc/*.o* allocator/*.o* calltree/*.o* commun/*.o* \ ! commun2/*.o* commun3/*.o* cpu/*.o* delay/*.o* gc/*.o* list/*.o* \ ! main/*.o* mon/*.o* prof/*.o* setup/*.o* shared/*.o* string/*.o* |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:32
|
Update of /cvsroot/javaprofiler/library/demo In directory usw-pr-cvs1:/tmp/cvs-serv27034/demo Modified Files: Makefile.rules dir.info Log Message: calltree Index: Makefile.rules =================================================================== RCS file: /cvsroot/javaprofiler/library/demo/Makefile.rules,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** Makefile.rules 2001/12/09 16:49:32 1.5 --- Makefile.rules 2002/01/31 12:30:59 1.6 *************** *** 79,80 **** --- 79,96 ---- $(MAKE) $(MFLAGS) 05 clean + 06.dir: + cd 06 + $(MAKE) $(MFLAGS) + cd .. + + 06.dir.2: + $(MAKE) $(MFLAGS) 06 + + 06.clean: + cd 06 + $(MAKE) $(MFLAGS) clean + cd .. + + 06.clean.2: + $(MAKE) $(MFLAGS) 06 clean + Index: dir.info =================================================================== RCS file: /cvsroot/javaprofiler/library/demo/dir.info,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** dir.info 2001/12/09 16:49:32 1.5 --- dir.info 2002/01/31 12:30:59 1.6 *************** *** 1 **** ! DIRS = 01 02 03 04 05 --- 1 ---- ! DIRS = 01 02 03 04 05 06 |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:32
|
Update of /cvsroot/javaprofiler/library/config In directory usw-pr-cvs1:/tmp/cvs-serv27034/config Modified Files: config_sparc_sunos58_gcc302.mk config_x86_linux_gcc302.mk Log Message: calltree Index: config_sparc_sunos58_gcc302.mk =================================================================== RCS file: /cvsroot/javaprofiler/library/config/config_sparc_sunos58_gcc302.mk,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** config_sparc_sunos58_gcc302.mk 2002/01/28 18:32:51 1.3 --- config_sparc_sunos58_gcc302.mk 2002/01/31 12:30:59 1.4 *************** *** 37,41 **** # modify as needed ! DEFINES = -DSUNOS -DUSE_RAW_MONITORS -DUSE_ALLOCATOR INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/solaris --- 37,41 ---- # modify as needed ! DEFINES = -DSUNOS -DUSE_RAW_MONITORS -DUSE_ALLOCATOR -fpic INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/solaris *************** *** 58,62 **** LDLIBS2 = ! CPPFLAGS = -fpic -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ --- 58,62 ---- LDLIBS2 = ! CPPFLAGS = -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ Index: config_x86_linux_gcc302.mk =================================================================== RCS file: /cvsroot/javaprofiler/library/config/config_x86_linux_gcc302.mk,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** config_x86_linux_gcc302.mk 2002/01/28 18:32:51 1.6 --- config_x86_linux_gcc302.mk 2002/01/31 12:30:59 1.7 *************** *** 37,41 **** # modify as needed ! DEFINES = -DLINUX -DUSE_RAW_MONITORS -DUSE_ALLOCATOR INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/linux --- 37,41 ---- # modify as needed ! DEFINES = -DLINUX -DUSE_RAW_MONITORS -DUSE_ALLOCATOR -fpic INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/linux *************** *** 53,57 **** LDLIBS2 = ! CPPFLAGS = -fpic -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ --- 53,57 ---- LDLIBS2 = ! CPPFLAGS = -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:32
|
Update of /cvsroot/javaprofiler/library In directory usw-pr-cvs1:/tmp/cvs-serv27034 Modified Files: README config.mk Log Message: calltree Index: README =================================================================== RCS file: /cvsroot/javaprofiler/library/README,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -r1.34 -r1.35 *** README 2002/01/27 14:33:24 1.34 --- README 2002/01/31 12:30:59 1.35 *************** *** 456,459 **** --- 456,462 ---- default: server + version date and time when this + dynamic library was built + 7. AUTHORS Index: config.mk =================================================================== RCS file: /cvsroot/javaprofiler/library/config.mk,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -r1.35 -r1.36 *** config.mk 2002/01/30 00:26:22 1.35 --- config.mk 2002/01/31 12:30:59 1.36 *************** *** 37,41 **** # modify as needed ! DEFINES = -DLINUX -DUSE_RAW_MONITORS -DUSE_ALLOCATOR INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/linux --- 37,41 ---- # modify as needed ! DEFINES = -DLINUX -DUSE_RAW_MONITORS -DUSE_ALLOCATOR -fpic INCLUDES = -I$(JAVA_PATH)/include -I$(JAVA_PATH)/include/linux *************** *** 53,57 **** LDLIBS2 = ! CPPFLAGS = -fpic -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ --- 53,57 ---- LDLIBS2 = ! CPPFLAGS = -c $(FLAGS) $(DEFINES) $(INCLUDES) ################################################################ |
From: Marek P. <ma...@us...> - 2002-01-31 12:31:06
|
Update of /cvsroot/javaprofiler/library/demo/06 In directory usw-pr-cvs1:/tmp/cvs-serv27034/demo/06 Added Files: Makefile Makefile.mak Makefile.rules README Test.java dir.info Log Message: calltree --- NEW FILE: Makefile --- include ../../config.mk include Makefile.rules --- NEW FILE: Makefile.mak --- !include ../../config.mk !include Makefile.rules --- NEW FILE: Makefile.rules --- Test.o \ Test.obj: $(JAVAC) $(JAVACFLAGS) Test.java --- NEW FILE: README --- This example show how to gain a calltree from the library. --- NEW FILE: Test.java --- /* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"); you may not use this file except * in compliance with the License. A copy of the License is available * at http://www.sun.com/ * * The Original Code is the Java Profiler module. The Initial Developers * of the Original Code are Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. * * Portions created by Jan Stola are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Pavel Vacha are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Michal Pise are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Petr Luner are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Lukas Petru are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Marek Przeczek are Copyright (C) 2000-2001. * All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ import java.lang.*; import java.util.*; import net.sourceforge.javaprofiler.jpiimpl.commun.*; public class Test { // communication interface private IProf iprof = null; public void runTest() { // initialize and start communication // we use socket communication where Java module will // stay for a server (so dynamic library must stay for a client) iprof = new IProf(); iprof.run(); try { // first of all, we need a thread ID Iterator iterator = iprof.getAllThruIterator( 0, IProf.THREADS, true); IProf.sID sid = (IProf.sID)iterator.next(); // ask for more info IProf.sThreadInfo sti = (IProf.sThreadInfo)iprof.getInfo( sid.infoId, IProf.THREAD_INFO); System.out.println( "thread: " + sti.threadName); System.out.println( "info ID: " + sid.infoId); System.out.println( "object ID: " + sid.objId); // now, ask for calltree of this thread IProf.sCallTree ct = iprof.getCallTree( sid.objId); if( ct == null) System.out.println( "calltree is empty !"); // now, i don't want anything else, // so I shutdown profiled JVM definitely iprof.shutdown(); } catch( Exception e) { System.err.println( "an error occurred, exception:"); System.err.println( e.getClass().getName()); } // communication must be stopped even if an error occurred ! iprof.stop(); iprof = null; } public static void main( String[] arg) { // let's run the test (new Test()).runTest(); } }; --- NEW FILE: dir.info --- FILES = Test CLEAN_FILES = *.class |