1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

[249239] - [debug view] Started/Exited events should always be handled (should not be skipped for optimization)

This commit is contained in:
Pawel Piech 2008-09-30 22:31:24 +00:00
parent d8295183cc
commit d9e9c8256b

View file

@ -28,6 +28,7 @@ import org.eclipse.dd.dsf.debug.internal.provisional.ui.viewmodel.launch.StackFr
import org.eclipse.dd.dsf.debug.internal.ui.DsfDebugUIPlugin; import org.eclipse.dd.dsf.debug.internal.ui.DsfDebugUIPlugin;
import org.eclipse.dd.dsf.debug.service.IRunControl; import org.eclipse.dd.dsf.debug.service.IRunControl;
import org.eclipse.dd.dsf.debug.service.IRunControl.IExecutionDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IExecutionDMContext;
import org.eclipse.dd.dsf.debug.service.IRunControl.IStartedDMEvent;
import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent;
import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants; import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants;
import org.eclipse.dd.dsf.service.DsfSession; import org.eclipse.dd.dsf.service.DsfSession;
@ -254,6 +255,12 @@ public class AbstractLaunchVMProvider extends AbstractDMVMProvider
// before the last suspended events. However, the debug view can get suspended // before the last suspended events. However, the debug view can get suspended
// events for different threads, so make sure to skip only the events if they // events for different threads, so make sure to skip only the events if they
// were in the same hierarchy as the last suspended event. // were in the same hierarchy as the last suspended event.
// Note: Avoid skipping thread started/exited events which require a larger
// scope refresh than some suspended events.
if (newEvent instanceof IStartedDMEvent || newEvent instanceof IExitedDMEvent) {
return false;
}
if (newEvent instanceof ISuspendedDMEvent && eventToSkip instanceof IDMEvent<?>) { if (newEvent instanceof ISuspendedDMEvent && eventToSkip instanceof IDMEvent<?>) {
IDMContext newEventDmc = ((IDMEvent<?>)newEvent).getDMContext(); IDMContext newEventDmc = ((IDMEvent<?>)newEvent).getDMContext();
IDMContext eventToSkipDmc = ((IDMEvent<?>)eventToSkip).getDMContext(); IDMContext eventToSkipDmc = ((IDMEvent<?>)eventToSkip).getDMContext();