当前位置: 首页>>代码示例>>Java>>正文


Java ThreadReferenceProxy类代码示例

本文整理汇总了Java中com.intellij.debugger.engine.jdi.ThreadReferenceProxy的典型用法代码示例。如果您正苦于以下问题:Java ThreadReferenceProxy类的具体用法?Java ThreadReferenceProxy怎么用?Java ThreadReferenceProxy使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ThreadReferenceProxy类属于com.intellij.debugger.engine.jdi包,在下文中一共展示了ThreadReferenceProxy类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createDescriptorTree

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private static DescriptorTree createDescriptorTree(final StackFrameProxy frameProxy, final DescriptorTree fromTree) {
  int frameCount = -1;
  int frameIndex = -1;
  if (frameProxy != null) {
    try {
      final ThreadReferenceProxy threadReferenceProxy = frameProxy.threadProxy();
      frameCount = threadReferenceProxy.frameCount();
      frameIndex = frameProxy.getFrameIndex();
     }
     catch (EvaluateException e) {
       // ignored
     }
  }
  final boolean isInitial = !fromTree.frameIdEquals(frameCount, frameIndex);
  DescriptorTree descriptorTree = new DescriptorTree(isInitial);
  descriptorTree.setFrameId(frameCount, frameIndex);
  return descriptorTree;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:NodeDescriptorFactoryImpl.java

示例2: createDescriptorTree

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private static DescriptorTree createDescriptorTree(final StackFrameContext context, final DescriptorTree fromTree) {
  int frameCount = -1;
  int frameIndex = -1;
  final StackFrameProxy frameProxy = context.getFrameProxy();
  if (frameProxy != null) {
    try {
      final ThreadReferenceProxy threadReferenceProxy = frameProxy.threadProxy();
      frameCount = threadReferenceProxy.frameCount();
      frameIndex = frameProxy.getFrameIndex();
     }
     catch (EvaluateException e) {
       // ignored
     }
  }
  final boolean isInitial = !fromTree.frameIdEquals(frameCount, frameIndex);
  DescriptorTree descriptorTree = new DescriptorTree(isInitial);
  descriptorTree.setFrameId(frameCount, frameIndex);
  return descriptorTree;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:20,代码来源:NodeDescriptorFactoryImpl.java

示例3: stopWatching

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public void stopWatching(@Nullable ThreadReferenceProxy thread)
{
	DebuggerManagerThreadImpl.assertIsManagerThread();
	if(thread != null)
	{
		myWatchedThreads.remove(thread);
	}
	else
	{
		myWatchedThreads.clear();
	}
	if(myWatchedThreads.isEmpty())
	{
		cancelTask();
	}
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:17,代码来源:ThreadBlockedMonitor.java

示例4: createDescriptorTree

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private static DescriptorTree createDescriptorTree(final StackFrameProxy frameProxy, final DescriptorTree fromTree)
{
	int frameCount = -1;
	int frameIndex = -1;
	if(frameProxy != null)
	{
		try
		{
			final ThreadReferenceProxy threadReferenceProxy = frameProxy.threadProxy();
			frameCount = threadReferenceProxy.frameCount();
			frameIndex = frameProxy.getFrameIndex();
		}
		catch(EvaluateException e)
		{
			// ignored
		}
	}
	final boolean isInitial = !fromTree.frameIdEquals(frameCount, frameIndex);
	DescriptorTree descriptorTree = new DescriptorTree(isInitial);
	descriptorTree.setFrameId(frameCount, frameIndex);
	return descriptorTree;
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:23,代码来源:NodeDescriptorFactoryImpl.java

示例5: startWatching

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public void startWatching(@Nullable ThreadReferenceProxy thread) {
  if (!Registry.is("debugger.monitor.blocked.threads")) return;
  DebuggerManagerThreadImpl.assertIsManagerThread();
  if (thread != null) {
    myWatchedThreads.add(thread);
    myAlarm.request();
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:9,代码来源:ThreadBlockedMonitor.java

示例6: stopWatching

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public void stopWatching(@Nullable ThreadReferenceProxy thread) {
  DebuggerManagerThreadImpl.assertIsManagerThread();
  if (thread != null) {
    myWatchedThreads.remove(thread);
  }
  if (myWatchedThreads.isEmpty()) {
    myAlarm.cancel();
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:10,代码来源:ThreadBlockedMonitor.java

示例7: checkBlockingThread

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private void checkBlockingThread() {
  myProcess.getManagerThread().schedule(new DebuggerCommandImpl() {
    @Override
    protected void action() throws Exception {
      if (myWatchedThreads.isEmpty()) return;
      VirtualMachineProxyImpl vmProxy = myProcess.getVirtualMachineProxy();
      //TODO: can we do fast check without suspending all
      vmProxy.getVirtualMachine().suspend();
      try {
        for (ThreadReferenceProxy thread : myWatchedThreads) {
          ObjectReference waitedMonitor =
            vmProxy.canGetCurrentContendedMonitor() ? thread.getThreadReference().currentContendedMonitor() : null;
          if (waitedMonitor != null && vmProxy.canGetMonitorInfo()) {
            ThreadReference blockingThread = waitedMonitor.owningThread();
            if (blockingThread != null) {
              onThreadBlocked(thread.getThreadReference(), blockingThread, myProcess);
            }
          }
        }
      }
      catch (IncompatibleThreadStateException e) {
        e.printStackTrace();
      }
      finally {
        vmProxy.getVirtualMachine().resume();
        myAlarm.request();
      }
    }
  });
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:31,代码来源:ThreadBlockedMonitor.java

示例8: getEvaluationThread

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private static ThreadReference getEvaluationThread(final EvaluationContext evaluationContext) throws EvaluateException {
  ThreadReferenceProxy evaluationThread = evaluationContext.getSuspendContext().getThread();
  if(evaluationThread == null) {
    throw EvaluateExceptionUtil.NULL_STACK_FRAME;
  }
  return evaluationThread.getThreadReference();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:DebugProcessImpl.java

示例9: applyThreadFilter

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
protected void applyThreadFilter(ThreadReferenceProxy thread) {
  if (getSuspendContext().getSuspendPolicy() == EventRequest.SUSPEND_ALL) {
    // there could be explicit resume as a result of call to voteSuspend()
    // e.g. when breakpoint was considered invalid, in that case the filter will be applied _after_
    // resuming and all breakpoints in other threads will be ignored.
    // As resume() implicitly cleares the filter, the filter must be always applied _before_ any resume() action happens
    final BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager();
    breakpointManager.applyThreadFilter(DebugProcessImpl.this, thread.getThreadReference());
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:11,代码来源:DebugProcessImpl.java

示例10: startWatching

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public void startWatching(@Nullable ThreadReferenceProxy thread)
{
	DebuggerManagerThreadImpl.assertIsManagerThread();
	if(thread != null)
	{
		myWatchedThreads.add(thread);
		if(myTask == null)
		{
			myTask = JobScheduler.getScheduler().scheduleWithFixedDelay(this::checkBlockingThread, 5, 5, TimeUnit.SECONDS);
		}
	}
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:13,代码来源:ThreadBlockedMonitor.java

示例11: checkBlockingThread

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private void checkBlockingThread()
{
	myProcess.getManagerThread().schedule(new DebuggerCommandImpl()
	{
		@Override
		protected void action() throws Exception
		{
			if(myWatchedThreads.isEmpty())
			{
				return;
			}
			VirtualMachineProxyImpl vmProxy = myProcess.getVirtualMachineProxy();
			//TODO: can we do fast check without suspending all
			vmProxy.getVirtualMachine().suspend();
			try
			{
				for(ThreadReferenceProxy thread : myWatchedThreads)
				{
					ObjectReference waitedMonitor = vmProxy.canGetCurrentContendedMonitor() ? thread.getThreadReference().currentContendedMonitor() : null;
					if(waitedMonitor != null && vmProxy.canGetMonitorInfo())
					{
						ThreadReference blockingThread = waitedMonitor.owningThread();
						if(blockingThread != null && blockingThread.suspendCount() > 1 && getCurrentThread() != blockingThread)
						{
							onThreadBlocked(thread.getThreadReference(), blockingThread, myProcess);
						}
					}
				}
			}
			catch(IncompatibleThreadStateException e)
			{
				LOG.info(e);
			}
			finally
			{
				vmProxy.getVirtualMachine().resume();
			}
		}
	});
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:41,代码来源:ThreadBlockedMonitor.java

示例12: getEvaluationThread

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
private static ThreadReference getEvaluationThread(final EvaluationContext evaluationContext) throws EvaluateException
{
	ThreadReferenceProxy evaluationThread = evaluationContext.getSuspendContext().getThread();
	if(evaluationThread == null)
	{
		throw EvaluateExceptionUtil.NULL_STACK_FRAME;
	}
	return evaluationThread.getThreadReference();
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:10,代码来源:DebugProcessImpl.java

示例13: applyThreadFilter

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
protected void applyThreadFilter(ThreadReferenceProxy thread)
{
	if(getSuspendContext().getSuspendPolicy() == EventRequest.SUSPEND_ALL)
	{
		// there could be explicit resume as a result of call to voteSuspend()
		// e.g. when breakpoint was considered invalid, in that case the filter will be applied _after_
		// resuming and all breakpoints in other threads will be ignored.
		// As resume() implicitly cleares the filter, the filter must be always applied _before_ any resume() action happens
		final BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager();
		breakpointManager.applyThreadFilter(DebugProcessImpl.this, thread.getThreadReference());
	}
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:13,代码来源:DebugProcessImpl.java

示例14: getThread

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
@Nullable
ThreadReferenceProxy getThread();
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:3,代码来源:SuspendContext.java

示例15: getThreadReference

import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public ThreadReferenceProxy getThreadReference(); 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:2,代码来源:ThreadDescriptor.java


注:本文中的com.intellij.debugger.engine.jdi.ThreadReferenceProxy类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。