From 94a721a938cd870205ecbf08d96560476f328433 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Wed, 9 Oct 2002 03:06:17 +0000 Subject: [PATCH] Implementation of disassembly mode. --- .../CDirectorySourceLocation.java | 3 +- .../sourcelookup/CProjectSourceLocation.java | 3 +- .../sourcelookup/CSourceLocator.java | 6 ++-- .../sourcelookup/CSourceManager.java | 30 ++++++++++++++----- .../sourcelookup/DisassemblyManager.java | 2 +- .../internal/core/model/CDebugTarget.java | 7 +++-- .../cdt/debug/ui/CUISourceLocator.java | 2 +- 7 files changed, 38 insertions(+), 15 deletions(-) rename debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/{ => internal}/sourcelookup/CDirectorySourceLocation.java (96%) rename debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/{ => internal}/sourcelookup/CProjectSourceLocation.java (97%) rename debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/{ => internal}/sourcelookup/CSourceLocator.java (96%) rename debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/{ => internal}/sourcelookup/CSourceManager.java (76%) rename debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/{ => internal}/sourcelookup/DisassemblyManager.java (82%) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CDirectorySourceLocation.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CDirectorySourceLocation.java similarity index 96% rename from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CDirectorySourceLocation.java rename to debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CDirectorySourceLocation.java index e30cab86afc..67b306727fc 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CDirectorySourceLocation.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CDirectorySourceLocation.java @@ -3,11 +3,12 @@ * All Rights Reserved. * */ -package org.eclipse.cdt.debug.core.sourcelookup; +package org.eclipse.cdt.debug.core.internal.sourcelookup; import java.io.File; import org.eclipse.cdt.core.resources.FileStorage; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IStorage; import org.eclipse.core.resources.ResourcesPlugin; diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CProjectSourceLocation.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CProjectSourceLocation.java similarity index 97% rename from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CProjectSourceLocation.java rename to debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CProjectSourceLocation.java index 272a490c5f1..baa1387edcd 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CProjectSourceLocation.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CProjectSourceLocation.java @@ -3,10 +3,11 @@ * All Rights Reserved. * */ -package org.eclipse.cdt.debug.core.sourcelookup; +package org.eclipse.cdt.debug.core.internal.sourcelookup; import java.io.File; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceLocator.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceLocator.java similarity index 96% rename from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceLocator.java rename to debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceLocator.java index ad1a33374d9..3d292d51b3e 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceLocator.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceLocator.java @@ -4,11 +4,13 @@ * */ -package org.eclipse.cdt.debug.core.sourcelookup; +package org.eclipse.cdt.debug.core.internal.sourcelookup; import java.util.ArrayList; import org.eclipse.cdt.debug.core.IStackFrameInfo; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; @@ -19,7 +21,7 @@ import org.eclipse.debug.core.model.IStackFrame; /** * - * Locates source for a C/C++ debug session. + * Default source locator. * * @since Aug 19, 2002 */ diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceManager.java similarity index 76% rename from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceManager.java rename to debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceManager.java index bcb06b60906..f8b98442d53 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/CSourceManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/CSourceManager.java @@ -4,30 +4,36 @@ * */ -package org.eclipse.cdt.debug.core.sourcelookup; +package org.eclipse.cdt.debug.core.internal.sourcelookup; import org.eclipse.cdt.debug.core.IStackFrameInfo; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; +import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator; +import org.eclipse.cdt.debug.core.sourcelookup.ISourceMode; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.debug.core.model.ISourceLocator; import org.eclipse.debug.core.model.IStackFrame; /** - * Enter type comment. + * Locates sources for a C/C++ debug session. * * @since: Oct 8, 2002 */ public class CSourceManager implements ICSourceLocator, ISourceMode, IAdaptable { - protected ISourceLocator fSourceLocator; - protected int fMode = ISourceMode.MODE_SOURCE; + private ISourceLocator fSourceLocator; + private DisassemblyManager fDisassemblyManager; + private int fMode = ISourceMode.MODE_SOURCE; + private int fRealMode = fMode; /** * Constructor for CSourceManager. */ - public CSourceManager( ISourceLocator sourceLocator ) + public CSourceManager( ISourceLocator sourceLocator, DisassemblyManager disassemblyManager ) { fSourceLocator = sourceLocator; + fDisassemblyManager = disassemblyManager; } /* (non-Javadoc) @@ -35,7 +41,7 @@ public class CSourceManager implements ICSourceLocator, ISourceMode, IAdaptable */ public int getLineNumber( IStackFrameInfo frameInfo ) { - if ( getMode() == ISourceMode.MODE_SOURCE ) + if ( getRealMode() == ISourceMode.MODE_SOURCE ) { if ( getCSourceLocator() != null ) { @@ -100,6 +106,16 @@ public class CSourceManager implements ICSourceLocator, ISourceMode, IAdaptable fMode = mode; } + protected int getRealMode() + { + return fRealMode; + } + + protected void setRealMode( int mode ) + { + fRealMode = mode; + } + /* (non-Javadoc) * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) */ @@ -113,7 +129,7 @@ public class CSourceManager implements ICSourceLocator, ISourceMode, IAdaptable */ public Object getSourceElement( IStackFrame stackFrame ) { - return ( getSourceLocator() != null ) ? getSourceLocator() : null; + return ( getSourceLocator() != null ) ? getSourceLocator().getSourceElement( stackFrame ) : null; } protected ICSourceLocator getCSourceLocator() diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/DisassemblyManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/DisassemblyManager.java similarity index 82% rename from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/DisassemblyManager.java rename to debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/DisassemblyManager.java index 7c9a9eb9cb7..27c540f1b77 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/sourcelookup/DisassemblyManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/internal/sourcelookup/DisassemblyManager.java @@ -4,7 +4,7 @@ * */ -package org.eclipse.cdt.debug.core.sourcelookup; +package org.eclipse.cdt.debug.core.internal.sourcelookup; /** * Enter type comment. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index a168446f1b6..ba24fa0a5c2 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -53,7 +53,9 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; 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; -import org.eclipse.cdt.debug.core.sourcelookup.CSourceLocator; +import org.eclipse.cdt.debug.core.internal.sourcelookup.CSourceLocator; +import org.eclipse.cdt.debug.core.internal.sourcelookup.CSourceManager; +import org.eclipse.cdt.debug.core.internal.sourcelookup.DisassemblyManager; import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator; import org.eclipse.cdt.debug.internal.core.breakpoints.CBreakpoint; @@ -1802,7 +1804,8 @@ public class CDebugTarget extends CDebugElement protected ISourceLocator createSourceLocator( IProject project ) { - return ( getLaunch().getSourceLocator() != null ) ? getLaunch().getSourceLocator() : new CSourceLocator( project ); + return new CSourceManager( ( getLaunch().getSourceLocator() != null ) ? getLaunch().getSourceLocator() : new CSourceLocator( project ), + new DisassemblyManager() ) ; } protected void setSourceSearchPath() diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CUISourceLocator.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CUISourceLocator.java index 3d9e3de955a..ec543b4e7e5 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CUISourceLocator.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CUISourceLocator.java @@ -8,7 +8,7 @@ package org.eclipse.cdt.debug.ui; import java.text.MessageFormat; import org.eclipse.cdt.debug.core.IStackFrameInfo; -import org.eclipse.cdt.debug.core.sourcelookup.CSourceLocator; +import org.eclipse.cdt.debug.core.internal.sourcelookup.CSourceLocator; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.ILaunchConfiguration;