/*
 *(c) Copyright QNX Software Systems Ltd. 2002.
 * All Rights Reserved.
 * 
 */
package org.eclipse.cdt.debug.core.cdi;

/**
 * 
 * Represents an information provided by the session when a step command
 * is completed.
 * 
 * @since Jul 10, 2002
 */
public interface ICDIEndSteppingRange extends ICDISessionObject {
}
