Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IModules.java')
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IModules.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IModules.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IModules.java
new file mode 100644
index 00000000000..c01ea5db89a
--- /dev/null
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IModules.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2008 Wind River Systems 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.dsf.debug.service;
+
+import org.eclipse.cdt.core.IAddress;
+import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
+import org.eclipse.cdt.dsf.datamodel.IDMContext;
+import org.eclipse.cdt.dsf.datamodel.IDMEvent;
+import org.eclipse.cdt.dsf.service.IDsfService;
+
+/**
+ * Debugger service representing module handling logic of a debugger.
+ */
+public interface IModules extends IDsfService {
+
+ /**
+ * Symbol context represents the space into which module symbols are loaded.
+ * Traditionally symbols are loaded in context of a process, but for other
+ * types of debugging, like kernel or no-OS debugging, it's useful to
+ * separate the concept of a symbol context from a process.
+ */
+ public interface ISymbolDMContext extends IDMContext {}
+
+ /**
+ * Module context represents a single module that is loaded.
+ */
+ public interface IModuleDMContext extends IDMContext {}
+
+ /**
+ * Event indicating a change in the symbol information for given context.
+ */
+ public interface ModulesChangedDMEvent extends IDMEvent<ISymbolDMContext> {}
+
+ /**
+ * Specific event identifying that a new module was loaded into a
+ * symbol context.
+ */
+ public interface ModuleLoadedDMEvent extends ModulesChangedDMEvent {
+ /** Returns context of the module that was loaded */
+ IModuleDMContext getLoadedModuleContext();
+ }
+
+ public interface ModuleUnloadedDMEvent extends ModulesChangedDMEvent {
+ /** Returns context of the module that was un-loaded */
+ IModuleDMContext getUnloadedModuleContext();
+ }
+
+ /** Module information. */
+ public interface IModuleDMData {
+ String getName();
+ String getFile();
+ long getTimeStamp();
+ String getBaseAddress();
+ String getToAddress();
+ boolean isSymbolsLoaded();
+ long getSize();
+ }
+
+ /** Line information about a particular address */
+ public interface LineInfo {
+ IAddress getAddress();
+ String getSourceFile();
+ int getStartLine();
+ int getStartColumn();
+ int getEndLine();
+ int getEndColumn();
+ }
+
+ /** Address information about a particular file/line */
+ public interface AddressRange {
+ IAddress getStartAddress();
+ IAddress getEndAddress();
+ }
+
+ void getModuleData(IModuleDMContext dmc, DataRequestMonitor<IModuleDMData> rm);
+
+ /**
+ * Retreives the list of modules loaded in given symbol context.
+ */
+ void getModules(ISymbolDMContext symCtx, DataRequestMonitor<IModuleDMContext[]> rm);
+
+ /**
+ * Calculates the line numbers corresponding to the given address.
+ */
+ void calcLineInfo(ISymbolDMContext symCtx, IAddress address, DataRequestMonitor<LineInfo[]> rm);
+
+ /**
+ * Calculates the addresses corresponding to the given source file location.
+ */
+ void calcAddressInfo(ISymbolDMContext symCtx, String file, int line, int col, DataRequestMonitor<AddressRange[]> rm);
+
+}

Back to the top