< prev index next >

src/jdk.jdwp.agent/share/native/libjdwp/threadControl.h

Print this page


   1 /*
   2  * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #ifndef JDWP_THREADCONTROL_H
  27 #define JDWP_THREADCONTROL_H
  28 
  29 #include "stepControl.h"
  30 #include "invoker.h"
  31 #include "bag.h"
  32 
  33 void threadControl_initialize(void);
  34 void threadControl_reset(void);
  35 void threadControl_detachInvokes(void);
  36 
  37 void threadControl_onHook(void);
  38 void threadControl_onConnect(void);
  39 void threadControl_onDisconnect(void);
  40 
  41 jvmtiError threadControl_popFrames(jthread thread, FrameNumber fnum);
  42 
  43 struct bag *threadControl_onEventHandlerEntry(jbyte sessionID,
  44                   EventIndex ei, jthread thread, jobject currentException);
  45 void threadControl_onEventHandlerExit(EventIndex ei, jthread thread, struct bag *);
  46 
  47 
  48 jvmtiError threadControl_suspendThread(jthread thread, jboolean deferred);
  49 jvmtiError threadControl_resumeThread(jthread thread, jboolean do_unblock);
  50 jvmtiError threadControl_suspendCount(jthread thread, jint *count);
  51 
  52 jvmtiError threadControl_suspendAll(void);
  53 jvmtiError threadControl_resumeAll(void);
  54 
  55 StepRequest *threadControl_getStepRequest(jthread);
  56 InvokeRequest *threadControl_getInvokeRequest(jthread);
  57 
  58 jboolean threadControl_isDebugThread(jthread thread);
  59 jvmtiError threadControl_addDebugThread(jthread thread);
  60 

  61 jvmtiError threadControl_applicationThreadStatus(jthread thread, jdwpThreadStatus *pstatus, jint *suspendStatus);
  62 jvmtiError threadControl_interrupt(jthread thread);
  63 jvmtiError threadControl_stop(jthread thread, jobject throwable);
  64 
  65 jvmtiError threadControl_setEventMode(jvmtiEventMode mode, EventIndex ei, jthread thread);
  66 jvmtiEventMode threadControl_getInstructionStepMode(jthread thread);
  67 
  68 jthread threadControl_currentThread(void);
  69 void threadControl_setPendingInterrupt(jthread thread);
  70 void threadControl_clearCLEInfo(JNIEnv *env, jthread thread);
  71 jboolean threadControl_cmpCLEInfo(JNIEnv *env, jthread thread, jclass clazz,
  72                                   jmethodID method, jlocation location);
  73 void threadControl_saveCLEInfo(JNIEnv *env, jthread thread, EventIndex ei,
  74                                jclass clazz, jmethodID method,
  75                                jlocation location);
  76 jlong threadControl_getFrameGeneration(jthread thread);











  77 
  78 #endif
   1 /*
   2  * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #ifndef JDWP_THREADCONTROL_H
  27 #define JDWP_THREADCONTROL_H
  28 
  29 #include "stepControl.h"
  30 #include "invoker.h"
  31 #include "bag.h"
  32 
  33 void threadControl_initialize(void);
  34 void threadControl_reset(void);
  35 void threadControl_detachInvokes(void);
  36 
  37 void threadControl_onHook(void);
  38 void threadControl_onConnect(void);
  39 void threadControl_onDisconnect(void);
  40 
  41 jvmtiError threadControl_popFrames(jthread thread, FrameNumber fnum);
  42 
  43 struct bag *threadControl_onEventHandlerEntry(jbyte sessionID, EventInfo *evinfo, jobject currentException);

  44 void threadControl_onEventHandlerExit(EventIndex ei, jthread thread, struct bag *);
  45 
  46 
  47 jvmtiError threadControl_suspendThread(jthread thread, jboolean deferred);
  48 jvmtiError threadControl_resumeThread(jthread thread, jboolean do_unblock);
  49 jvmtiError threadControl_suspendCount(jthread thread, jint *count);
  50 
  51 jvmtiError threadControl_suspendAll(void);
  52 jvmtiError threadControl_resumeAll(void);
  53 
  54 StepRequest *threadControl_getStepRequest(jthread);
  55 InvokeRequest *threadControl_getInvokeRequest(jthread);
  56 
  57 jboolean threadControl_isDebugThread(jthread thread);
  58 jvmtiError threadControl_addDebugThread(jthread thread);
  59 
  60 void threadControl_setName(jthread thread, const char *name);
  61 jvmtiError threadControl_applicationThreadStatus(jthread thread, jdwpThreadStatus *pstatus, jint *suspendStatus);
  62 jvmtiError threadControl_interrupt(jthread thread);
  63 jvmtiError threadControl_stop(jthread thread, jobject throwable);
  64 
  65 jvmtiError threadControl_setEventMode(jvmtiEventMode mode, EventIndex ei, jthread thread);
  66 jvmtiEventMode threadControl_getInstructionStepMode(jthread thread);
  67 
  68 jthread threadControl_currentThread(void);
  69 void threadControl_setPendingInterrupt(jthread thread);
  70 void threadControl_clearCLEInfo(JNIEnv *env, jthread thread);
  71 jboolean threadControl_cmpCLEInfo(JNIEnv *env, jthread thread, jclass clazz,
  72                                   jmethodID method, jlocation location);
  73 void threadControl_saveCLEInfo(JNIEnv *env, jthread thread, EventIndex ei,
  74                                jclass clazz, jmethodID method,
  75                                jlocation location);
  76 jlong threadControl_getFrameGeneration(jthread thread);
  77 
  78 jthread *threadControl_allFibers(jint *numFibers);
  79 jthread threadControl_getFiberCarrierOrHelperThread(jthread fiber);
  80 void threadControl_addFiber(jthread fiber);
  81 jboolean threadControl_isKnownFiber(jthread fiber);
  82 
  83 void threadControl_unmountFiber(jthread fiber, jthread thread);
  84 void threadControl_mountFiber(jthread fiber, jthread thread, jbyte sessionID);
  85 
  86 void threadControl_continuationRun(jthread thread, jint frames_count);
  87 void threadControl_continuationYield(jthread thread, jint frames_count);
  88 
  89 #endif
< prev index next >