/*******************************************************************************
* Copyright (c) 2006, 2007 Nokia and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nokia - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.debug.core.cdi.model;
public interface ICDITargetConfiguration2 extends ICDITargetConfiguration {
/**
* Returns whether this target supports thread control, namely whether it
* supports suspending/resuming threads individually.
*
* @return whether this target supports thread control, namely whether it
* supports suspending/resuming threads individually.
*/
boolean supportsThreadControl();
/**
* Returns whether this target supports passive variable updating. If so
* targets will not be actively sending variable value change notification
* when a thread is suspended but will wait until they are asked to
* redisplay the value. Passive variable updating lets a CDI plugin avoid
* maintaining its own variable cache and having to keep it in sync with
* CDT's. Targets that support this feature will need to be able to detect
* when a variable value has changed and fire a changedEvent in its
* implementation of ICDIValue.getValueString().
*
* Also, targets that support this feature will not have their variables
* disposed when the user disables them in the GUI. Such a dispose only
* serves to reduce step-time overhead in the debugger engine. As such
* overhead is negligible for engines with passive variables, the dispose
* is unnecessary.
*
* @return whether this target supports passive variable updating.
*/
boolean supportsPassiveVariableUpdate();
/**
* Returns whether this target supports runtime type indentification.
* If so this means the type of a variable may change when its value changes.
*
* @return whether this target supports runtime type indentification.
* If so this means the type of a variable may change when its value changes.
*/
boolean supportsRuntimeTypeIdentification();
/**
* Returns whether this target supports having address breakpoints
* enabled when a debug session starts.
* If so this means address breaks will not be disabled on startup.
*
* @return whether this target supports having address breakpoints
* enabled when a debug session starts.
* If so this means address breaks will not be disabled on startup.
*/
boolean supportsAddressBreaksOnStartup();
}