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

Bug 418176 - Register view does not refresh register names per process

Change-Id: I656593bb655d3a384fbcc179ca77e81c9f804f8a
Signed-off-by: Alvaro Sanchez-Leon <alvsan09@gmail.com>
Reviewed-on: https://git.eclipse.org/r/16837
Reviewed-by: Marc Khouzam <marc.khouzam@ericsson.com>
IP-Clean: Marc Khouzam <marc.khouzam@ericsson.com>
Tested-by: Marc Khouzam <marc.khouzam@ericsson.com>
This commit is contained in:
Alvaro Sanchez-Leon 2013-09-27 09:07:48 -04:00 committed by Marc Khouzam
parent 360577311b
commit 4eb628b862

View file

@ -10,12 +10,15 @@
* Ericsson - Modified for additional features in DSF Reference Implementation * Ericsson - Modified for additional features in DSF Reference Implementation
* Roland Grunberg (RedHat) - Refresh all registers once one is changed (Bug 400840) * Roland Grunberg (RedHat) - Refresh all registers once one is changed (Bug 400840)
* Alvaro Sanchez-Leon (Ericsson) - Make Registers View specific to a frame (Bug 323552) * Alvaro Sanchez-Leon (Ericsson) - Make Registers View specific to a frame (Bug 323552)
* Alvaro Sanchez-Leon (Ericsson) - Register view does not refresh register names per process (Bug 418176)
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.dsf.mi.service; package org.eclipse.cdt.dsf.mi.service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.Map;
import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.concurrent.ImmediateDataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.ImmediateDataRequestMonitor;
@ -175,7 +178,8 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
private CommandFactory fCommandFactory; private CommandFactory fCommandFactory;
private MIRegisterGroupDMC fGeneralRegistersGroupDMC; //One Group per container process
private final Map<IContainerDMContext, MIRegisterGroupDMC> fContainerToGroupMap = new HashMap<IContainerDMContext, MIRegisterGroupDMC>();
private CommandCache fRegisterNameCache; // Cache for holding the Register Names in the single Group private CommandCache fRegisterNameCache; // Cache for holding the Register Names in the single Group
private CommandCache fRegisterValueCache; // Cache for holding the Register Values private CommandCache fRegisterValueCache; // Cache for holding the Register Values
@ -519,10 +523,16 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
return; return;
} }
if (fGeneralRegistersGroupDMC == null) { //Bug 418176
fGeneralRegistersGroupDMC = new MIRegisterGroupDMC( this , contDmc, 0 , "General Registers" ) ; //$NON-NLS-1$ //Only one group per Process (container) is supported for the time being
MIRegisterGroupDMC registerGroup = fContainerToGroupMap.get(contDmc);
if (registerGroup == null) {
registerGroup = new MIRegisterGroupDMC( this , contDmc, 0 , "General Registers" ) ; //$NON-NLS-1$
fContainerToGroupMap.put(contDmc, registerGroup);
} }
MIRegisterGroupDMC[] groupDMCs = new MIRegisterGroupDMC[] { fGeneralRegistersGroupDMC };
MIRegisterGroupDMC[] groupDMCs = new MIRegisterGroupDMC[] { registerGroup };
rm.setData(groupDMCs) ; rm.setData(groupDMCs) ;
rm.done() ; rm.done() ;
} }