/*
 *(c) Copyright QNX Software Systems Ltd. 2002.
 * All Rights Reserved.
 * 
 */

package org.eclipse.cdt.debug.core.model;

import org.eclipse.debug.core.model.ILineBreakpoint;

/**
 * 
 * A breakpoint that suspend execution when a particular line of code
 * is reached.
 * 
 * @since Aug 21, 2002
 */
public interface ICLineBreakpoint extends ICBreakpoint, ILineBreakpoint
{
}
