diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index d6867cc4076..7aeacf8d7c6 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,9 @@ +2003-05-26 Mikhail Khodjaiants + First draft of the tracepoints in the CDI. + * ICDITraceManager.java + * ICDITraceSnapshot.java + * ICDITracepoint.java + 2003-05-23 Alain Magloire * src/org/eclipse/cdt/debug/core/cdi/model/type/ICDIType.java: extends diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceManager.java new file mode 100644 index 00000000000..2c6ad84afbf --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceManager.java @@ -0,0 +1,154 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ + +package org.eclipse.cdt.debug.core.cdi; + +import org.eclipse.cdt.debug.core.cdi.model.ICDITracepoint; + +/** + * Manages the collection of registered tracepoints and trace snapshoits + * in the debug session. Provides methods to control tracing. + * + * @since May 15, 2003 + */ +public interface ICDITraceManager extends ICDISessionObject { + /** + * Returns a collection of all tracepoints set for this session. + * Returns an empty array if no tracepoints are set. + * + * @return a collection of all tracepoints set for this session + * @throws CDIException on failure. Reasons include: + */ + ICDITracepoint[] getTracepoints() throws CDIException; + + /** + * Deletes the given tracepoint. + * + * @param tracepoint - a tracepoint to be deleted + * @throws CDIException on failure. Reasons include: + */ + void deleteTracepoint( ICDITracepoint tracepoint ) throws CDIException; + + /** + * Deletes the given array of tracepoints. + * + * @param tracepoints - the array of tracepoints to be deleted + * @throws CDIException on failure. Reasons include: + */ + void deleteTracepoints( ICDITracepoint[] tracepoints ) throws CDIException; + + /** + * Deletes all tracepoints. + * + * @throws CDIException on failure. Reasons include: + */ + void deleteAllTracepoints() throws CDIException; + + /** + * Sets a tracepoint at the given location. + * The tracepoint is set acording to the choices: + *
+ * if location.getFile() != null then + * if location.getFunction() != null then + * tracepoint = file:function + * else + * tracepoint = file:line + * else if (location.getFuntion() != null) then + * tracepoint = function + * else if (location.getLineNumber() != 0 then + * tracepoint = line + * else + * tracepoint = address + * end + *+ * + * @param location - the location + * @return a tracepoint + * @throws CDIException on failure. Reasons include: + */ + ICDITracepoint setTracepoint( ICDILocation location ) throws CDIException; + + /** + * Allows the manager to interrupt the excution of program + * when setting a tracepoint. + */ + void allowProgramInterruption( boolean allow ); + + /** + * Starts the tracing and begins collecting data. + * + * @throws CDIException on failure. Reasons include: + */ + void startTracing() throws CDIException; + + /** + * Stops the tracing and ends collecting data. + * + * @throws CDIException on failure. Reasons include: + */ + void stopTracing() throws CDIException; + + /** + * Returns the status of tracing. + * + * @return the status of tracing + * @throws CDIException on failure. Reasons include: + */ + boolean isTracing() throws CDIException; + + /** + * Enables/disables the snapshot debugging mode. + * + * @param enabled
true
to enable, and false
+ * to disable
+ * @throws CDIException on failure. Reasons include:
+ */
+ void enableSnapshotMode( boolean enabled ) throws CDIException;
+
+ /**
+ * Returns all trace snapshots for this session.
+ *
+ * @return all trace snapshots for this session
+ * @throws CDIException on failure. Reasons include:
+ */
+ ICDITraceSnapshot[] getSnapshots() throws CDIException;
+
+ /**
+ * Returns all trace snapshots associated with the given tracepoints.
+ *
+ * @param tracepoints - an array of tracepoints
+ * @return all trace snapshots associated with the given tracepoints
+ * @throws CDIException on failure. Reasons include:
+ */
+ ICDITraceSnapshot[] getSnapshots( ICDITracepoint[] tracepoints ) throws CDIException;
+
+ /**
+ * Returns all trace snapshots associated with the given locations.
+ *
+ * @param locations - an array of locations
+ * @return all trace snapshots associated with the given locations
+ * @throws CDIException on failure. Reasons include:
+ */
+ ICDITraceSnapshot[] getSnapshots( ICDILocation[] locations ) throws CDIException;
+
+ /**
+ * Creates an ICDILocation object for given file name and line number or function.
+ *
+ * @param file - a file name
+ * @param function - a function name
+ * @param line - a line number
+ * @return an ICDILocation object
+ */
+ ICDILocation createLocation( String file, String function, int line );
+
+ /**
+ * Creates an ICDILocation object for given address.
+ *
+ * @param address - an address
+ * @return an ICDILocation object
+ */
+ ICDILocation createLocation( long address );
+}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceSnapshot.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceSnapshot.java
new file mode 100644
index 00000000000..99734be3548
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDITraceSnapshot.java
@@ -0,0 +1,47 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+
+package org.eclipse.cdt.debug.core.cdi;
+
+import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITracepoint;
+
+/**
+ * Represents a trace snapshot in the debug session.
+ *
+ * @since May 15, 2003
+ */
+public interface ICDITraceSnapshot extends ICDISessionObject {
+
+ /**
+ * Returns the number of this snapshot.
+ *
+ * @return the number of this snapshot
+ */
+ int getNumber();
+
+ /**
+ * Selects this snapshot.
+ *
+ * @throws CDIException on failure. Reasons include:
+ */
+ void select() throws CDIException;
+
+ /**
+ * Returns the data collected at this snapshot.
+ *
+ * @return the data collected at this snapshot
+ * @throws CDIException on failure. Reasons include:
+ */
+ ICDIObject[] getData() throws CDIException;
+
+ /**
+ * Returns the array of tracepoints associated with this snapshot.
+ *
+ * @return array of tracepoints
+ */
+ ICDITracepoint[] getTracepoints();
+}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/model/ICDITracepoint.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/model/ICDITracepoint.java
new file mode 100644
index 00000000000..ce36a415000
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/model/ICDITracepoint.java
@@ -0,0 +1,98 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+
+package org.eclipse.cdt.debug.core.cdi.model;
+
+import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDILocation;
+
+/**
+ * Defines a point in the program execution when the specified data to be collected.
+ *
+ * @since May 15, 2003
+ */
+public interface ICDITracepoint extends ICDIObject {
+
+ /**
+ * Represents an action to be taken when the tracepoint is hit.
+ *
+ * @since May 15, 2003
+ */
+ public interface IAction {
+ }
+
+ /**
+ * Returns the location of this tracepoint.
+ *
+ * @return the location of this tracepoint
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ ICDILocation getLocation() throws CDIException;
+
+ /**
+ * Returns whether this tracepoint is enabled.
+ *
+ * @return whether this tracepoint is enabled
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ boolean isEnabled() throws CDIException;
+
+ /**
+ * Sets the enabled state of this tracepoint. This has no effect
+ * if the current enabled state is the same as specified by
+ * the enabled parameter.
+ *
+ * @param enabled - whether this tracepoint should be enabled
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ void setEnabled( boolean enabled ) throws CDIException;
+
+ /**
+ * Returns the passcount of this tracepoint.
+ *
+ * @return the passcount of this tracepoint
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ int getPassCount() throws CDIException;
+
+ /**
+ * Sets the passcount of this tracepoint.
+ *
+ * @param the passcount to set
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ void setPassCount( int passCount ) throws CDIException;
+
+ /**
+ * Adds the given actions to the action list of thie tracepoint.
+ *
+ * @param actions to add
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ void addActions( ICDITracepoint.IAction[] actions ) throws CDIException;
+
+ /**
+ * Removes the given actions from the action list of thie tracepoint.
+ *
+ * @param actions to remove
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ void removeActions( ICDITracepoint.IAction[] actions ) throws CDIException;
+
+ /**
+ * Clears the action list of thie tracepoint.
+ *
+ * @throws CDIException if this method fails. Reasons include:
+ */
+ void clearActions() throws CDIException;
+
+ /**
+ * Returns the actions assigned to this tracepoint.
+ *
+ * @return the actions of this tracepoint
+ */
+ ICDITracepoint.IAction[] getActions();
+}