Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  README   Sprache: C

 
Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).

You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.

---------------------------------------------------------------------------------

This directory contains source files of testbase_nsk JVMTI framework,
which provides support for JVMTI tests and accessing JVMTI environment.

    Source files:
        jvmti_tools.h
        jvmti_tools.c
        agent_tools.c
        Injector.h
        Injector.c
        JVMTITools.h
        JVMTITools.c

    Naming conventions:
        macroses:  NSK_JVMTI_*
        functions: nsk_jvmti_*

---------------------------------------------------------------------------------

jvmti_tools.h

Provides functions and macroses for invocation of JVMTI functions
and checking JVMTI errors:

    NSK_JVMTI_VERIFY(call)
    NSK_JVMTI_VERIFY_NEGATIVE(call)
    NSK_JVMTI_VERIFY_CODE(code, action)

Also provides functions for running JVMTI agent:

    - init agent with options:

        int nsk_jvmti_parseOptions(const char options[]);

    - access agent options

        int  nsk_jvmti_getWaitTime();
        void nsk_jvmti_setWaitTime(int waittime);

        const char* nsk_jvmti_findOptionValue(const char name[]);
        const char* nsk_jvmti_findOptionStringValue(const char name[], const char* defaultValue);
        int nsk_jvmti_findOptionIntValue(const char name[], int defaultValue);

        int nsk_jvmti_getOptionsCount();
        const char* nsk_jvmti_getOptionName(int i);
        const char* nsk_jvmti_getOptionValue(int i);

    - create JVMTI environment and register agent thread

        jvmtiEnv* nsk_jvmti_createJVMTIEnv(JavaVM* jvm, void* reserved);
        int       nsk_jvmti_setAgentProc(jvmtiStartFunction proc, const void* arg);

    - initialize multiple agent chain via processing of nativeMethodBind event

        int nsk_jvmti_init_MA(jvmtiEventCallbacks* callbacks);

    - access agent thread environment

        jthread   nsk_jvmti_getAgentThread();
        jvmtiEnv* nsk_jvmti_getAgentJVMTIEnv();
        JNIEnv*   nsk_jvmti_getAgentJNIEnv();

    - synchronize agent with debuggee

        int  nsk_jvmti_waitForSync(jlong timeout);
        int  nsk_jvmti_resumeSync();
        void nsk_jvmti_sleep(jlong timeout);

    - provide proper exit status

        void nsk_jvmti_setFailStatus();
        int  nsk_jvmti_isFailStatus();
        jint nsk_jvmti_getStatus();

    - use locations and breakpoints

        int nsk_jvmti_addLocationCapabilities();
        int nsk_jvmti_addBreakpointCapabilities();

        jlocation nsk_jvmti_getLineLocation(jclass cls, jmethodID method, int line);
        jlocation nsk_jvmti_setLineBreakpoint(jclass cls, jmethodID method, int line);
        jlocation nsk_jvmti_clearLineBreakpoint(jclass cls, jmethodID method, int line);

    - find classes and threads

        jclass nsk_jvmti_classBySignature(const char signature[]);
        jthread nsk_jvmti_threadByName(const char name[]);

    - events management

        int nsk_jvmti_isOptionalEvent(jvmtiEvent event);
        int nsk_jvmti_enableEvents(jvmtiEventMode enable, int size,
                                   jvmtiEvent list[], jthread thread);
        void nsk_jvmti_showPossessedCapabilities(jvmtiEnv *jvmti);

---------------------------------------------------------------------------------

Typical example of usage of the NSK_JVMTI_VERIFY macro
for invocation of JVMTI functions:

    // jvmti->GetVersion(jvmti, &version)
    if (!NSK_JVMTI_VERIFY(jvmti->GetVersion(&version) != NULL)) {
        return JNI_ERR;
    }

or with saving error code:

    // err = jvmti->GetVersion(jvmti, &version)
    if (!NSK_JVMTI_VERIFY(err = jvmti->GetVersion(&version))) {
        return err;
    }
        functions: nsk_jvmti_*

---------------------------------------------------------------------------------

JVMTITools.h

Provides set of functions which convert JVMTI binary data to
a null-terminated character string:


    const char* TranslateEvent(jvmtiEvent event_type);
    const char* TranslateState(jint flags);
    const char* TranslateError(jvmtiError err);
    const char* TranslatePhase(jvmtiPhase phase);
    const char* TranslateRootKind(jvmtiHeapRootKind root);
    const char* TranslateObjectRefKind(jvmtiObjectReferenceKind ref);

---------------------------------------------------------------------------------

Injector.h

Provides class file format constants and the function which inject some
profiling bytecodes into Java class files:

    int Inject(const u1* old_bytes, const jint old_length,
               u1** new_bytes, jint* new_length, int bci_mode);

---------------------------------------------------------------------------------

Messung V0.5
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge