Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/debug
diff options
context:
space:
mode:
authorMikhail Khodjaiants2003-11-18 17:41:20 -0500
committerMikhail Khodjaiants2003-11-18 17:41:20 -0500
commitd0e8fc4b6e683de217ca18368142f7483aed9119 (patch)
tree9389ea187fb207a0d999d0854a5805c84b2d8ee1 /debug
parente0486ead58ad07851c43b4339e07c25e56987042 (diff)
downloadorg.eclipse.cdt-d0e8fc4b6e683de217ca18368142f7483aed9119.tar.gz
org.eclipse.cdt-d0e8fc4b6e683de217ca18368142f7483aed9119.tar.xz
org.eclipse.cdt-d0e8fc4b6e683de217ca18368142f7483aed9119.zip
Fix for PR 45534: gdb/MI error in retrieving a register can lead to an empty register pane.
Diffstat (limited to 'debug')
-rw-r--r--debug/org.eclipse.cdt.debug.core/ChangeLog5
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java9
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java12
3 files changed, 20 insertions, 6 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog
index dd56f810b5b..0969f846756 100644
--- a/debug/org.eclipse.cdt.debug.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.core/ChangeLog
@@ -39,6 +39,11 @@
the 'ICSourceLocator' class.
* CSourceManager.java
+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;
}

Back to the top