blob: fb854ba15db9a802947a4109b1df6b11002b9f9c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2009 IBM Corporation 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:
* IBM Corporation - initial API and implementation
* Bjorn Freeman-Benson - initial API and implementation
* Pawel Piech (Wind River) - ported PDA Virtual Machine to Java (Bug 261400)
*******************************************************************************/
package org.eclipse.debug.examples.core.pda.model;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.IBreakpointManager;
import org.eclipse.debug.core.model.DebugElement;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.examples.core.pda.DebugCorePlugin;
import org.eclipse.debug.examples.core.pda.protocol.PDACommand;
import org.eclipse.debug.examples.core.pda.protocol.PDACommandResult;
/**
* Common function for PDA debug elements.
*/
public class PDADebugElement extends DebugElement {
/**
* Constructs a new debug element in the given target.
*
* @param target debug target
*/
public PDADebugElement(IDebugTarget target) {
super(target);
}
/* (non-Javadoc)
* @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
*/
public String getModelIdentifier() {
return DebugCorePlugin.ID_PDA_DEBUG_MODEL;
}
/**
* Sends a request to the PDA interpreter, waits for and returns the reply.
*
* @param request command
* @return reply
* @throws DebugException if the request fails
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDATerminateCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAVMSuspendCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAVMResumeCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDASuspendCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAResumeCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAStepCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDADropFrameCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDASetBreakpointCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAClearBreakpointCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAWatchCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDADataCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDASetDataCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAPopDataCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAPushDataCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDAEvalCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDAEventStopCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDAStackCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAStackDepthCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAFrameCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDASetVarCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAVarCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDAChildrenCommand
*
* @see org.eclipse.debug.examples.core.pda.protocol.PDAGroupsCommand
* @see org.eclipse.debug.examples.core.pda.protocol.PDARegistersCommand
*
* @since 3.5
*/
public PDACommandResult sendCommand(PDACommand command) throws DebugException {
return getPDADebugTarget().sendCommand(command);
}
/**
* Returns the debug target as a PDA target.
*
* @return PDA debug target
*/
protected PDADebugTarget getPDADebugTarget() {
return (PDADebugTarget) getDebugTarget();
}
/**
* Returns the breakpoint manager
*
* @return the breakpoint manager
*/
protected IBreakpointManager getBreakpointManager() {
return DebugPlugin.getDefault().getBreakpointManager();
}
}