/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package com.intellij.debugger.actions;
import com.intellij.debugger.engine.DebugProcessImpl;
-import com.intellij.debugger.engine.events.SuspendContextCommandImpl;
+import com.intellij.debugger.engine.events.DebuggerCommandImpl;
import com.intellij.debugger.impl.DebuggerContextImpl;
import com.intellij.debugger.jdi.ThreadReferenceProxyImpl;
import com.intellij.debugger.ui.impl.watch.DebuggerTreeNodeImpl;
final ThreadReferenceProxyImpl thread = threadDescriptor.getThreadReference();
if (!threadDescriptor.isFrozen()) {
- debugProcess.getManagerThread().schedule(new SuspendContextCommandImpl(debuggerContext.getSuspendContext()) {
- public void contextAction() throws Exception {
+ debugProcess.getManagerThread().schedule(new DebuggerCommandImpl(){
+ @Override
+ protected void action() throws Exception {
debugProcess.createFreezeThreadCommand(thread).run();
debuggerTreeNode.calcValue();
}
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
enabled = false;
break;
}
- else {
- if (threadDescriptor.isFrozen()) {
- text = DebuggerBundle.message("action.resume.thread.text.unfreeze");
- }
- }
+ //else {
+ // if (threadDescriptor.isFrozen()) {
+ // text = DebuggerBundle.message("action.resume.thread.text.unfreeze");
+ // }
+ //}
}
}
}
@Override
public void contextAction() {
- if (getSuspendManager().isFrozen(myThread)) {
+ // handle unfreeze through the regular context resume
+ if (false && getSuspendManager().isFrozen(myThread)) {
getSuspendManager().unfreezeThread(myThread);
return;
}
SuspendManager suspendManager = getSuspendManager();
if (!suspendManager.isFrozen(myThread)) {
suspendManager.freezeThread(myThread);
+ SuspendContextImpl suspendContext = mySuspendManager.pushSuspendContext(EventRequest.SUSPEND_EVENT_THREAD, 0);
+ suspendContext.setThread(myThread.getThreadReference());
+ mySuspendManager.notifyPaused(suspendContext);
}
}
}
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
}
break;
case EventRequest.SUSPEND_EVENT_THREAD:
+ myFrozenThreads.remove(getThread());
getThread().resume();
if(LOG.isDebugEnabled()) {
LOG.debug("Thread resumed : " + getThread().toString());
/*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import com.intellij.debugger.DebuggerBundle;
import com.intellij.debugger.DebuggerInvocationUtil;
-import com.intellij.debugger.engine.DebugProcessImpl;
-import com.intellij.debugger.engine.DebuggerUtils;
-import com.intellij.debugger.engine.SuspendContextImpl;
+import com.intellij.debugger.engine.*;
import com.intellij.debugger.engine.evaluation.EvaluateException;
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
import com.intellij.debugger.engine.events.DebuggerCommandImpl;
action.Debugger.SetValue.text=Set Value...
action.Debugger.ShowFrame.text=Show Frame
action.Debugger.ResumeThread.text=Resume
-action.Debugger.FreezeThread.text=Freeze
+action.Debugger.FreezeThread.text=Suspend
action.Debugger.InterruptThread.text=Interrupt
action.Debugger.MuteBreakpoints.text=Mute Breakpoints
action.Debugger.MuteBreakpoints.description=Mute/unmute all breakpoints in a debug session.
</group>
<group id="Debugger.ThreadsPanelPopup">
- <!--<reference ref="Debugger.ResumeThread"/>-->
- <!--<reference ref="Debugger.FreezeThread"/>-->
+ <reference ref="Debugger.ResumeThread"/>
+ <reference ref="Debugger.FreezeThread"/>
<reference ref="Debugger.InterruptThread"/>
<!--<reference ref="Debugger.ShowFrame"/>-->
<reference ref="Debugger.PopFrame"/>