From ca94f732f9190a4256a46c914a803b5d3f6bbfb4 Mon Sep 17 00:00:00 2001 From: John Cortell Date: Thu, 13 May 2010 22:15:23 +0000 Subject: [PATCH] Bug 309032: Fixed NPE I'm seeing intermittently during session shutdown. --- .../internal/core/CMemoryBlockRetrievalExtension.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java index 11e6ce37787..cd38ad9c30c 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java @@ -151,9 +151,15 @@ public class CMemoryBlockRetrievalExtension extends PlatformObject implements IM * * @param expression * @return + * @throws DebugException if target not available */ - private BigInteger evaluateLiteralAddress(String addr) { - IAddressFactory addrFactory = getDebugTarget().getAddressFactory(); + private BigInteger evaluateLiteralAddress(String addr) throws DebugException { + CDebugTarget target = getDebugTarget(); + if (target == null) { + throw new DebugException(new Status(IStatus.ERROR, CDebugCorePlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED, + InternalDebugCoreMessages.getString("CMemoryBlockRetrievalExtension.CDebugTarget_not_available"), null)); //$NON-NLS-1$ + } + IAddressFactory addrFactory = target.getAddressFactory(); if (addrFactory instanceof IAddressFactory2) { return ((IAddressFactory2)addrFactory).createAddress(addr, false).getValue(); }