diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 2db436630e4..cd13aa1940d 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2003-10-26 Mikhail Khodjaiants + Fix for PR 45534: gdb/MI error in retrieving a register can lead to an empty register pane. + * CRegister.java + * CRegisterGroup.java + 2003-10-23 Mikhail Khodjaiants Core support of the new workbench preferences: 'Source Locations' and 'Search For Duplicate Source Files'. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java index 04f7b173c8f..8f8f3192a7f 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java @@ -8,6 +8,7 @@ package org.eclipse.cdt.debug.internal.core.model; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDebugConstants; import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IRegister; import org.eclipse.debug.core.model.IRegisterGroup; @@ -21,6 +22,14 @@ import org.eclipse.debug.core.model.IValue; */ public class CRegister extends CGlobalVariable implements IRegister { + public static class ErrorRegister extends ErrorVariable implements ICDIRegister + { + public ErrorRegister( ICDIVariableObject varObject, Exception e ) + { + super( varObject, e ); + } + } + /** * Constructor for CRegister. * @param parent diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java index ac29a9e3bbb..8e896567227 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java @@ -93,16 +93,16 @@ public class CRegisterGroup extends CDebugElement implements IRegisterGroup private ICDIRegister[] getCDIRegisters() throws DebugException { ICDIRegister[] results = new ICDIRegister[fRegisterObjects.length]; - try + for ( int i = 0; i < fRegisterObjects.length; ++i ) { - for ( int i = 0; i < fRegisterObjects.length; ++i ) + try { results[i] = ((CDebugTarget)getDebugTarget()).getCDISession().getRegisterManager().createRegister( fRegisterObjects[i] ); } - } - catch( CDIException e ) - { - targetRequestFailed( e.getMessage(), null ); + catch( CDIException e ) + { + results[i] = new CRegister.ErrorRegister( fRegisterObjects[i], e ); + } } return results; }