From bb9485981f8fd89f5b8c982db3d79420f515a7b9 Mon Sep 17 00:00:00 2001 From: Teodor Madan Date: Fri, 18 Jun 2010 16:11:44 +0000 Subject: [PATCH] Bug 317226: Disassembly view throws NPE when debugging with CDI. Fix also NPE when getting frame address --- .../ui/disassembly/dsf/CDIDisassemblyRetrieval.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/disassembly/dsf/CDIDisassemblyRetrieval.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/disassembly/dsf/CDIDisassemblyRetrieval.java index 18cc8b198c7..0310b2db00b 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/disassembly/dsf/CDIDisassemblyRetrieval.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/disassembly/dsf/CDIDisassemblyRetrieval.java @@ -14,6 +14,7 @@ package org.eclipse.cdt.debug.internal.ui.disassembly.dsf; import java.math.BigInteger; +import org.eclipse.cdt.core.IAddress; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIInstruction; import org.eclipse.cdt.debug.core.cdi.model.ICDIMixedInstruction; @@ -99,7 +100,12 @@ public class CDIDisassemblyRetrieval implements IDisassemblyRetrieval { Runnable op= new Runnable() { public void run() { if (stackFrame instanceof ICStackFrame) { - addressRequest.setAddress(((ICStackFrame)stackFrame).getAddress().getValue()); + IAddress address = ((ICStackFrame)stackFrame).getAddress(); + if (address != null ) { + addressRequest.setAddress(address.getValue()); + } else { + addressRequest.setStatus(new Status(IStatus.ERROR, CDebugUIPlugin.getUniqueIdentifier(), "Internal error: Cannot retrieve frame address")); //$NON-NLS-1$ + } } else { addressRequest.cancel(); }