final GdbDebugTextHover fDebugTextHover;
final GdbPinProvider fPinProvider;
SessionAdapterSet(GdbLaunch launch) {
fLaunch = launch;
DsfSession session = launch.getSession();
// register stepping controller
fSteppingController = new SteppingController(session);
session.registerModelAdapter(SteppingController.class, fSteppingController);
fViewModelAdapter = createGdbViewModelAdapter(session, fSteppingController);
session.registerModelAdapter(IViewerInputProvider.class, fViewModelAdapter);
if (launch.getSourceLocator() instanceof ISourceLookupDirector) {
fSourceDisplayAdapter = new DsfSourceDisplayAdapter(session, (ISourceLookupDirector)launch.getSourceLocator(), fSteppingController);
} else {
fSourceDisplayAdapter = null;
}
session.registerModelAdapter(ISourceDisplay.class, fSourceDisplayAdapter);
fSteppingModeTarget = new GdbSteppingModeTarget(session);
fStepIntoCommand = new DsfStepIntoCommand(session, fSteppingModeTarget);
fStepIntoSelectionCommand = new DsfStepIntoSelectionCommand(session);
fReverseStepIntoCommand = new GdbReverseStepIntoCommand(session, fSteppingModeTarget);
fStepOverCommand = new DsfStepOverCommand(session, fSteppingModeTarget);
fReverseStepOverCommand = new GdbReverseStepOverCommand(session, fSteppingModeTarget);
fStepReturnCommand = new DsfStepReturnCommand(session);
fUncallCommand = new GdbUncallCommand(session, fSteppingModeTarget);
fSuspendCommand = new DsfSuspendCommand(session);
fResumeCommand = new DsfResumeCommand(session);
fReverseResumeCommand = new GdbReverseResumeCommand(session);
fResumeWithoutSignalCommand = new GdbResumeWithoutSignalCommand(session);
fRestartCommand = new GdbRestartCommand(session, fLaunch);
fTerminateCommand = new DsfTerminateCommand(session);
fDebugNewExecutableCommand = new GdbDebugNewExecutableCommand(session, fLaunch);
fConnectCommand = new GdbConnectCommand(session, fLaunch);
fDisconnectCommand = new GdbDisconnectCommand(session);
fSuspendTrigger = new GdbSuspendTrigger(session, fLaunch);
fModelSelectionPolicyFactory = new DefaultDsfModelSelectionPolicyFactory();
fRefreshAllTarget = new DefaultRefreshAllTarget();
fReverseToggleTarget = new GdbReverseToggleCommand(session);
fStartTracingTarget = new GdbStartTracingCommand(session);
fStopTracingTarget = new GdbStopTracingCommand(session);
fSaveTraceDataTarget = new GdbSaveTraceDataCommand(session);
fSelectNextRecordTarget = new GdbSelectNextTraceRecordCommand(session);
fSelectPrevRecordTarget = new GdbSelectPrevTraceRecordCommand(session);
fPinProvider = new GdbPinProvider(session);
session.registerModelAdapter(ISteppingModeTarget.class, fSteppingModeTarget);
session.registerModelAdapter(IStepIntoHandler.class, fStepIntoCommand);
session.registerModelAdapter(IStepIntoSelectionHandler.class, fStepIntoSelectionCommand);
session.registerModelAdapter(IReverseStepIntoHandler.class, fReverseStepIntoCommand);
session.registerModelAdapter(IStepOverHandler.class, fStepOverCommand);
session.registerModelAdapter(IReverseStepOverHandler.class, fReverseStepOverCommand);
session.registerModelAdapter(IStepReturnHandler.class, fStepReturnCommand);
session.registerModelAdapter(IUncallHandler.class, fUncallCommand);
session.registerModelAdapter(ISuspendHandler.class, fSuspendCommand);
session.registerModelAdapter(IResumeHandler.class, fResumeCommand);
session.registerModelAdapter(IReverseResumeHandler.class, fReverseResumeCommand);
session.registerModelAdapter(IResumeWithoutSignalHandler.class, fResumeWithoutSignalCommand);
session.registerModelAdapter(IRestartHandler.class, fRestartCommand);
session.registerModelAdapter(ITerminateHandler.class, fTerminateCommand);
session.registerModelAdapter(IConnectHandler.class, fConnectCommand);
session.registerModelAdapter(IDebugNewExecutableHandler.class, fDebugNewExecutableCommand);
session.registerModelAdapter(IDisconnectHandler.class, fDisconnectCommand);
session.registerModelAdapter(IModelSelectionPolicyFactory.class, fModelSelectionPolicyFactory);
session.registerModelAdapter(IRefreshAllTarget.class, fRefreshAllTarget);
session.registerModelAdapter(IReverseToggleHandler.class, fReverseToggleTarget);
session.registerModelAdapter(IStartTracingHandler.class, fStartTracingTarget);
session.registerModelAdapter(IStopTracingHandler.class, fStopTracingTarget);
session.registerModelAdapter(ISaveTraceDataHandler.class, fSaveTraceDataTarget);
session.registerModelAdapter(ISelectNextTraceRecordHandler.class, fSelectNextRecordTarget);
session.registerModelAdapter(ISelectPrevTraceRecordHandler.class, fSelectPrevRecordTarget);
session.registerModelAdapter(IPinProvider.class, fPinProvider);
session.registerModelAdapter(IDsfStepIntoSelection.class, fStepIntoSelectionCommand);
fDebugModelProvider = new IDebugModelProvider() {
// @see org.eclipse.debug.core.model.IDebugModelProvider#getModelIdentifiers()
@Override
public String[] getModelIdentifiers() {
return new String[] { GdbLaunchDelegate.GDB_DEBUG_MODEL_ID, ICBreakpoint.C_BREAKPOINTS_DEBUG_MODEL_ID, "org.eclipse.cdt.gdb" }; //$NON-NLS-1$
}
};
session.registerModelAdapter(IDebugModelProvider.class, fDebugModelProvider);
/*
* Registering the launch as an adapter, ensures that this launch,
* and debug model ID will be associated with all DMContexts from this
* session.
*/
session.registerModelAdapter(ILaunch.class, fLaunch);
/*
* Register debug hover adapter (bug 309001).
*/
fDebugTextHover = new GdbDebugTextHover();
session.registerModelAdapter(ICEditorTextHover.class, fDebugTextHover);
}