diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget2.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget2.java index df1ba61b163..1c9772e6722 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget2.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget2.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.debug.core.cdi.model; +import org.eclipse.cdt.core.IAddressFactory; import org.eclipse.cdt.debug.core.model.IGlobalVariableDescriptor; public interface ICDITarget2 extends ICDITarget { @@ -21,4 +22,10 @@ public interface ICDITarget2 extends ICDITarget { */ IGlobalVariableDescriptor[] getGlobalVariables(); + /** + * Returns an AddressFactory for use with this target. + * @return an IAddressFactory. + */ + IAddressFactory getAddressFactory(); + } 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 17c70717533..bafaba662d8 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 @@ -1625,6 +1625,14 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv fAddressFactory = file.getAddressFactory(); } } + else { + // No binary file, possible when we do pure assembly level debug + // Without any binary file involved, ask CDI plugin for default + // AddressFactory, if any. + if (fCDITarget instanceof ICDITarget2) { + fAddressFactory = ((ICDITarget2) fCDITarget).getAddressFactory(); + } + } } return fAddressFactory; }