mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 18:56:02 +02:00
[283586] Traditional Rendering are not disposed after Memory Browser is closed or Debug Session is terminated.
This commit is contained in:
parent
f705bf184e
commit
5862d4025c
1 changed files with 16 additions and 0 deletions
|
@ -41,10 +41,13 @@ import org.eclipse.cdt.dsf.service.DsfServiceEventHandler;
|
|||
import org.eclipse.cdt.dsf.service.DsfServicesTracker;
|
||||
import org.eclipse.cdt.dsf.service.DsfSession;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.MultiStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.debug.core.DebugEvent;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||
|
@ -263,6 +266,19 @@ public class GdbLaunch extends DsfLaunch
|
|||
// DsfMemoryBlockRetrieval.saveMemoryBlocks();
|
||||
fMemRetrieval.saveMemoryBlocks();
|
||||
|
||||
// Fire a terminate event for the memory retrieval object so
|
||||
// that the hosting memory views can clean up. See 255120 and
|
||||
// 283586
|
||||
new Job("Dispatch GDB Memory retrieval terminate event.") { //$NON-NLS-1$
|
||||
{ setSystem(true); }
|
||||
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
DebugPlugin.getDefault().fireDebugEventSet( new DebugEvent[] { new DebugEvent(fMemRetrieval, DebugEvent.TERMINATE) });
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
}.schedule();
|
||||
|
||||
// endSession takes a full dispatch to distribute the
|
||||
// session-ended event, finish step only after the dispatch.
|
||||
fExecutor.shutdown();
|
||||
|
|
Loading…
Add table
Reference in a new issue