本文整理汇总了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;
}
示例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;
}
示例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();
}
}
示例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;
}
示例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();
}
}
示例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();
}
}
示例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();
}
}
});
}
示例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();
}
示例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());
}
}
示例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);
}
}
}
示例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();
}
}
});
}
示例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();
}
示例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());
}
}
示例14: getThread
import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
@Nullable
ThreadReferenceProxy getThread();
示例15: getThreadReference
import com.intellij.debugger.engine.jdi.ThreadReferenceProxy; //导入依赖的package包/类
public ThreadReferenceProxy getThreadReference();