Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v retrieving revision
1.115 diff -u -r1.115 ChangeLog --- ChangeLog 30 Jan 2003 15:59:43
-0000 1.115 +++ ChangeLog 31 Jan 2003 22:29:36 -0000 @@ -1,3
+1,12 @@ +2003-01-31 Mikhail Khodjaiants + Implementing the 'Signals'
view. + * ICSharedLibraryManager.java + * ICSignalManager.java:
new + * ICSignal.java: new + * CSignalManager.java:
new + * CSignal.java: new + *
CDebugTarget.java + 2003-01-30 Mikhail
Khodjaiants Create an address breakpoint if the source locator
can not find the file specified by gdb. *
CDebugTarget.java Index:
src/org/eclipse/cdt/debug/core/ICSharedLibraryManager.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICSharedLibraryManager.java,v retrieving
revision 1.1 diff -u -r1.1 ICSharedLibraryManager.java ---
src/org/eclipse/cdt/debug/core/ICSharedLibraryManager.java 17 Jan 2003
00:15:10 -0000 1.1 +++
src/org/eclipse/cdt/debug/core/ICSharedLibraryManager.java 31 Jan 2003
22:29:36 -0000 @@ -5,7 +5,6 @@ */ package
org.eclipse.cdt.debug.core; -import
org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import
org.eclipse.cdt.debug.core.model.ICSharedLibrary; import
org.eclipse.core.runtime.IAdaptable; @@ -16,12 +15,6 @@
*/ public interface ICSharedLibraryManager extends
IAdaptable { - void sharedLibraryLoaded( ICDISharedLibrary
library ); - - void sharedLibraryUnloaded( ICDISharedLibrary library
); - - void symbolsLoaded( ICDISharedLibrary library
); - ICSharedLibrary[]
getSharedLibraries(); void dispose(); Index:
src/org/eclipse/cdt/debug/core/ICSignalManager.java =================================================================== RCS
file: src/org/eclipse/cdt/debug/core/ICSignalManager.java diff -N
src/org/eclipse/cdt/debug/core/ICSignalManager.java --- /dev/null 1 Jan
1970 00:00:00 -0000 +++
src/org/eclipse/cdt/debug/core/ICSignalManager.java 31 Jan 2003 22:29:36
-0000 @@ -0,0 +1,22 @@ +/* + *(c) Copyright QNX Software Systems Ltd.
2002. + * All Rights Reserved. + * + */ +package
org.eclipse.cdt.debug.core; + +import
org.eclipse.cdt.debug.core.model.ICSignal; +import
org.eclipse.core.runtime.IAdaptable; +import
org.eclipse.debug.core.DebugException; + +/** + * Enter type
comment. + * + * @since: Jan 31, 2003 + */ +public interface
ICSignalManager extends IAdaptable +{ + ICSignal[] getSignals()
throws DebugException; + + void dispose(); +} Index:
src/org/eclipse/cdt/debug/core/model/ICSignal.java =================================================================== RCS
file: src/org/eclipse/cdt/debug/core/model/ICSignal.java diff -N
src/org/eclipse/cdt/debug/core/model/ICSignal.java --- /dev/null 1 Jan
1970 00:00:00 -0000 +++
src/org/eclipse/cdt/debug/core/model/ICSignal.java 31 Jan 2003 22:29:36
-0000 @@ -0,0 +1,33 @@ +/* + *(c) Copyright QNX Software Systems Ltd.
2002. + * All Rights Reserved. + * + */ +package
org.eclipse.cdt.debug.core.model; + +import
org.eclipse.debug.core.DebugException; +import
org.eclipse.debug.core.model.IDebugElement; + +/** + * Enter type
comment. + * + * @since: Jan 31, 2003 + */ +public interface
ICSignal extends IDebugElement +{ + String
getName(); + + String
getDescription(); + + boolean
isPassEnabled(); + + boolean
isStopEnabled(); + + void setPassEnabled( boolean enable )
throws DebugException; + + void setStopEnabled( boolean enable
) throws DebugException; + + void signal() throws
DebugException; + + void dispose(); +} Index:
src/org/eclipse/cdt/debug/internal/core/CSignalManager.java =================================================================== RCS
file: src/org/eclipse/cdt/debug/internal/core/CSignalManager.java diff -N
src/org/eclipse/cdt/debug/internal/core/CSignalManager.java ---
/dev/null 1 Jan 1970 00:00:00 -0000 +++
src/org/eclipse/cdt/debug/internal/core/CSignalManager.java 31 Jan 2003
22:29:37 -0000 @@ -0,0 +1,113 @@ +/* + *(c) Copyright QNX Software
Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package
org.eclipse.cdt.debug.internal.core; + +import
org.eclipse.cdt.debug.core.ICSignalManager; +import
org.eclipse.cdt.debug.core.cdi.model.ICDISignal; +import
org.eclipse.cdt.debug.core.model.ICSignal; +import
org.eclipse.cdt.debug.internal.core.model.CDebugTarget; +import
org.eclipse.cdt.debug.internal.core.model.CSignal; +import
org.eclipse.debug.core.DebugEvent; +import
org.eclipse.debug.core.DebugException; +import
org.eclipse.debug.core.model.IDebugTarget; + +/** + * Enter type
comment. + * + * @since: Jan 31, 2003 + */ +public class
CSignalManager implements ICSignalManager +{ + private CDebugTarget
fDebugTarget = null; + private ICSignal[] fSignals =
null; + + /** + * Constructor for CSignalManager. +
*/ + public CSignalManager( CDebugTarget target
) + { + setDebugTarget( target
); + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.ICSignalManager#getSignals() +
*/ + public ICSignal[] getSignals() throws
DebugException + { + if ( fSignals == null
) + { + // load signals from
target + } + return ( fSignals != null ) ? fSignals
: new ICSignal[0]; + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.ICSignalManager#dispose() +
*/ + public void dispose() + { + if ( fSignals !=
null ) + for ( int i = 0; i < fSignals.length; ++i
) + { + fSignals[i].dispose(); + } + fSignals
= null; + } + + /* (non-Javadoc) + * @see
org.eclipse.core.runtime.IAdaptable#getAdapter(Class) +
*/ + public Object getAdapter( Class adapter
) + { + if ( adapter.equals( ICSignalManager.class )
) + { + return
this; + } + if ( adapter.equals(
CSignalManager.class ) ) + { + return
this; + } + if ( adapter.equals( IDebugTarget.class
) ) + { + return
fDebugTarget; + } + return
null; + } + + public IDebugTarget
getDebugTarget() + { + return
fDebugTarget; + } + + protected void setDebugTarget(
CDebugTarget target ) + { + fDebugTarget =
target; + } + + public void signalChanged( ICDISignal
cdiSignal ) + { + CSignal signal = find( cdiSignal
); + if ( signal != null
) + { + signal.fireChangeEvent(
DebugEvent.STATE ); + } + } + + private CSignal
find( ICDISignal cdiSignal
) + { + try + { + ICSignal[]
signals = getSignals(); + for ( int i = 0; i <
signals.length; ++i ) + if (
signals[i].getName().equals( cdiSignal.getName() )
) + return
(CSignal)signals[i]; + } + catch( DebugException e
) + { + } + return
null; + } +} Index:
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java,v retrieving
revision 1.78 diff -u -r1.78 CDebugTarget.java ---
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 30 Jan 2003
15:59:43 -0000 1.78 +++
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 31 Jan 2003
22:29:37 -0000 @@ -22,6 +22,7 @@ import
org.eclipse.cdt.debug.core.ICBreakpointManager; import
org.eclipse.cdt.debug.core.ICMemoryManager; import
org.eclipse.cdt.debug.core.ICSharedLibraryManager; +import
org.eclipse.cdt.debug.core.ICSignalManager; import
org.eclipse.cdt.debug.core.cdi.CDIException; import
org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit; import
org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager; @@ -51,6 +52,7
@@ import
org.eclipse.cdt.debug.core.cdi.model.ICDIObject; import
org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; import
org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; +import
org.eclipse.cdt.debug.core.cdi.model.ICDISignal; import
org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import
org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import
org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint; @@ -73,6 +75,7
@@ import
org.eclipse.cdt.debug.internal.core.CDebugUtils; import
org.eclipse.cdt.debug.internal.core.CMemoryManager; import
org.eclipse.cdt.debug.internal.core.CSharedLibraryManager; +import
org.eclipse.cdt.debug.internal.core.CSignalManager; import
org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants; import
org.eclipse.cdt.debug.internal.core.breakpoints.CBreakpoint; import
org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceManager; @@ -228,6
+231,11 @@ private CSharedLibraryManager
fSharedLibraryManager; /** + * A signal
manager for this target. + */ + private CSignalManager
fSignalManager; + + /** * Whether the debugger
process is default. */ private boolean
fIsDebuggerProcessDefault = false; @@ -272,6 +280,7
@@ setThreadList( new ArrayList( 5 )
); setDisassemblyManager( new DisassemblyManager( this )
); setSharedLibraryManager( new CSharedLibraryManager( this
) ); + setSignalManager( new CSignalManager( this )
); initialize(); DebugPlugin.getDefault().getLaunchManager().addLaunchListener(
this
); DebugPlugin.getDefault().getExpressionManager().addExpressionListener(
this ); @@ -877,9 +886,11 @@ if ( adapter.equals(
ICBreakpointManager.class ) ) return
this; if ( adapter.equals( DisassemblyManager.class )
) - return fDisassemblyManager; + return
getDisassemblyManager(); if ( adapter.equals(
ICSharedLibraryManager.class ) ) - return
fSharedLibraryManager; + return
getSharedLibraryManager(); + if ( adapter.equals(
ICSignalManager.class ) ) + return
getSignalManager(); return super.getAdapter( adapter
); } @@ -969,6 +980,10
@@ { getSharedLibraryManager().symbolsLoaded(
(ICDISharedLibrary)source
); } + if ( source
instanceof ICDISignal
) + { + getSignalManager().signalChanged(
(ICDISignal)source
); + } if ( source
instanceof ICDIBreakpoint
) { handleBreakpointChangedEvent(
(ICDIBreakpoint)source ); @@ -1127,6 +1142,7
@@ DebugPlugin.getDefault().getLaunchManager().removeLaunchListener(
this
); disposeMemoryManager(); disposeSharedLibraryManager(); + disposeSignalManager(); removeAllExpressions(); try { @@
-2326,6 +2342,21 @@ protected void
disposeSharedLibraryManager() { fSharedLibraryManager.dispose(); + } + + protected
void setSignalManager( CSignalManager sm
) + { + fSignalManager =
sm; + } + + protected CSignalManager
getSignalManager() + { + return
fSignalManager; + } + + protected void
disposeSignalManager() + { + fSignalManager.dispose(); } /*
(non-Javadoc) Index:
src/org/eclipse/cdt/debug/internal/core/model/CSignal.java =================================================================== RCS
file: src/org/eclipse/cdt/debug/internal/core/model/CSignal.java diff -N
src/org/eclipse/cdt/debug/internal/core/model/CSignal.java ---
/dev/null 1 Jan 1970 00:00:00 -0000 +++
src/org/eclipse/cdt/debug/internal/core/model/CSignal.java 31 Jan 2003
22:29:37 -0000 @@ -0,0 +1,101 @@ +/* + *(c) Copyright QNX Software
Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package
org.eclipse.cdt.debug.internal.core.model; + +import
org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; +import
org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener; +import
org.eclipse.cdt.debug.core.cdi.model.ICDISignal; +import
org.eclipse.cdt.debug.core.model.ICSignal; +import
org.eclipse.debug.core.DebugException; + +/** + * Enter type
comment. + * + * @since: Jan 31, 2003 + */ +public class CSignal
extends CDebugElement implements ICSignal,
ICDIEventListener +{ + private ICDISignal
fCDISignal; + + /** + * Constructor for CSignal. +
* @param target + */ + public CSignal( CDebugTarget target,
ICDISignal cdiSignal ) + { + super( target
); + fCDISignal =
cdiSignal; + getCDISession().getEventManager().addEventListener(
this ); + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#getDescription() +
*/ + public String getDescription() + { + return
""; + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#getName() +
*/ + public String getName() + { + return
""; + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#isPassEnabled() +
*/ + public boolean isPassEnabled() + { + return
false; + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#isStopEnabled() +
*/ + public boolean isStopEnabled() + { + return
false; + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#setPassEnabled(boolean) +
*/ + public void setPassEnabled( boolean enable ) throws
DebugException + { + } + + /*
(non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#setStopEnabled(boolean) +
*/ + public void setStopEnabled( boolean enable ) throws
DebugException + { + } + + /*
(non-Javadoc) + * @see
org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvent(ICDIEvent) +
*/ + public void handleDebugEvent( ICDIEvent event
) + { + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#dispose() +
*/ + public void
dispose() + { + getCDISession().getEventManager().removeEventListener(
this ); + } + + /* (non-Javadoc) + * @see
org.eclipse.cdt.debug.core.model.ICSignal#signal() +
*/ + public void signal() throws
DebugException + { + } +}
|