From 7747d5a8c8d1e827ea85f6b3767f027bcff07ea2 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Thu, 2 Jan 2003 20:57:55 +0000 Subject: [PATCH] Adapter for 'IResource' in 'DisassemblyStorage'. --- debug/org.eclipse.cdt.debug.core/ChangeLog | 6 ++++++ .../cdt/debug/core/model/IExecFileInfo.java | 6 +++++- .../debug/internal/core/DisassemblyStorage.java | 17 +++++++++++++++++ .../debug/internal/core/model/CDebugTarget.java | 2 +- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index bbc6a7fd741..1cb87ab2b25 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,9 @@ +2003-01-02 Mikhail Khodjaiants + The 'DisassemblyStorage' class implements an adapter for the 'IResource' class and returns the executable file. + * IExecFileInfo.java: added a new method: 'getExecFile' + * CDebugTarget.java + * DisassemblyStorage.java + 2003-01-02 Mikhail Khodjaiants If breakpoint or watchpoint has been disabled before launching the debugger doesn't disable it. * CDebugTarget.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IExecFileInfo.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IExecFileInfo.java index 4248496ad50..185200fbbe7 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IExecFileInfo.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IExecFileInfo.java @@ -6,6 +6,8 @@ package org.eclipse.cdt.debug.core.model; +import org.eclipse.core.resources.IFile; + /** * Provides access to executable file information. * @@ -13,7 +15,9 @@ package org.eclipse.cdt.debug.core.model; */ public interface IExecFileInfo { + public IFile getExecFile(); + public boolean isLittleEndian(); - public IGlobalVariable[] getGlobals(); + public IGlobalVariable[] getGlobals(); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DisassemblyStorage.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DisassemblyStorage.java index 11f2b0af35d..c5b488ddb47 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DisassemblyStorage.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/DisassemblyStorage.java @@ -11,7 +11,9 @@ import java.io.InputStream; import java.util.Arrays; import org.eclipse.cdt.debug.core.cdi.model.ICDIInstruction; +import org.eclipse.cdt.debug.core.model.IExecFileInfo; import org.eclipse.cdt.debug.core.sourcelookup.IDisassemblyStorage; +import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; @@ -129,6 +131,8 @@ public class DisassemblyStorage implements IDisassemblyStorage return this; if ( adapter.equals( DisassemblyStorage.class ) ) return this; + if ( adapter.equals( IResource.class ) ) + return getBinary(); return null; } @@ -206,4 +210,17 @@ public class DisassemblyStorage implements IDisassemblyStorage { return ( 16 + maxFunctionName + Long.toString( maxOffset ).length() ); } + + private IResource getBinary() + { + if ( getDebugTarget() != null ) + { + IExecFileInfo info = (IExecFileInfo)getDebugTarget().getAdapter( IExecFileInfo.class ); + if ( info != null ) + { + return info.getExecFile(); + } + } + return null; + } } 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 ed2a7e22403..68947a6940d 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 @@ -1957,7 +1957,7 @@ public class CDebugTarget extends CDebugElement return true; } - protected IFile getExecFile() + public IFile getExecFile() { return fExecFile; }