1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-07 00:05:53 +02:00

Bug 425698: Refresh Traditional rendering in memory view when

stepping

Change-Id: I61c4b502a161139f98d7b73026a863dcf4f2ad52
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
This commit is contained in:
Marc Khouzam 2015-03-05 15:26:53 -05:00 committed by Gerrit Code Review @ Eclipse.org
parent 1502c78cd6
commit d702a8f947

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2006, 2014 Wind River Systems, Inc. and others. * Copyright (c) 2006, 2015 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -601,26 +601,27 @@ public class Rendering extends Composite implements IDebugEventSetListener
final int kind = events[i].getKind(); final int kind = events[i].getKind();
final int detail = events[i].getDetail(); final int detail = events[i].getDetail();
final IDebugElement source = (IDebugElement) events[i].getSource(); final IDebugElement source = (IDebugElement) events[i].getSource();
/*
* We have to make sure we are comparing memory blocks here. It pretty much is now the if(source.getDebugTarget() == getMemoryBlock().getDebugTarget())
* case that the IDebugTarget is always null. Almost no one in the Embedded Space is
* using anything but CDT/DSF or CDT/TCF at this point. The older CDI stuff will still
* be using the old Debug Model API. But this will generate the same memory block and
* a legitimate IDebugTarget which will match properly.
*/
if(source.equals( getMemoryBlock() ) && source.getDebugTarget() == getMemoryBlock().getDebugTarget() )
{ {
if((detail & DebugEvent.BREAKPOINT) != 0) /* For CDT/DSF or CDT/TCF the IDebugTarget interface is not longer used,
isBreakpointHit = true; * and returns null. In such a case, we should check that we are dealing
if(kind == DebugEvent.SUSPEND) * with the correct memory block instead.
*/
if (source.getDebugTarget() != null || source.equals(getMemoryBlock()))
{ {
handleSuspendEvent(detail); if((detail & DebugEvent.BREAKPOINT) != 0)
isSuspend = true; isBreakpointHit = true;
} if(kind == DebugEvent.SUSPEND)
else if(kind == DebugEvent.CHANGE) {
{ handleSuspendEvent(detail);
handleChangeEvent(); isSuspend = true;
isChangeOnly = true; }
else if(kind == DebugEvent.CHANGE)
{
handleChangeEvent();
isChangeOnly = true;
}
} }
} }
} }