@DsfServiceEventHandler public void eventDispatched(IStartedDMEvent event) { // If a new memory context is starting, create its memory retrieval instance if (event.getDMContext() instanceof IMemoryDMContext) { IMemoryDMContext memDmc = (IMemoryDMContext) event.getDMContext(); if (!fMapMemDMCToBlockRetrieval.containsKey(memDmc)) { // We need a new memory retrieval for this new memory context IMemoryBlockRetrieval memRetrieval = null; try { memRetrieval = createMemoryBlockRetrieval(fModelId, fLaunchConfig, fSession); } catch (DebugException e) { DsfPlugin.getDefault().getLog().log(e.getStatus()); return; } if (memRetrieval != null) { if (memRetrieval instanceof DsfMemoryBlockRetrieval) { ((DsfMemoryBlockRetrieval) memRetrieval).initialize(memDmc); } fMapMemDMCToBlockRetrieval.put(memDmc, memRetrieval); } } } }