Пример #1
0
  @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);
        }
      }
    }
  }