mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
Implementation of disassembly mode.
This commit is contained in:
parent
e9791e7823
commit
94a721a938
7 changed files with 38 additions and 15 deletions
|
@ -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;
|
|
@ -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;
|
|
@ -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
|
||||
*/
|
|
@ -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()
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
package org.eclipse.cdt.debug.core.sourcelookup;
|
||||
package org.eclipse.cdt.debug.core.internal.sourcelookup;
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue