From cabc71e9e2a6f14baee12a7f9d9dbc10b8b8a31c Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Fri, 5 Aug 2005 00:19:16 +0000 Subject: [PATCH] 2005-08-04 Alain Magloire ClastCastException being throw in CThread.getAdapter(IRunToLine.class); Patch solution to ignore the exception. * src/org/eclipse/cdt/debug/internal/core/model/CThread.java --- debug/org.eclipse.cdt.debug.core/ChangeLog | 6 ++++++ .../cdt/debug/internal/core/model/CThread.java | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index ae98377ad1f..e116245f270 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,9 @@ +2005-08-04 Alain Magloire + ClastCastException being throw in CThread.getAdapter(IRunToLine.class); + Patch solution to ignore the exception. + + * src/org/eclipse/cdt/debug/internal/core/model/CThread.java + 2005-07-29 Mikhail Khodjaiants The registers with errors shouldn't be disposed when the target is suspended. Added synchronization to the "getRegisters" method. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java index 7e555404ff8..2e2420dd975 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java @@ -787,7 +787,12 @@ public class CThread extends CDebugElement implements ICThread, IRestart, IResum adapter.equals( IJumpToLine.class ) || adapter.equals( IJumpToAddress.class ) ) { try { - return (ICStackFrame)getTopStackFrame(); + // Alain: Put a proper fix later. + Object obj = getTopStackFrame(); + if (obj instanceof ICStackFrame) { + return (ICStackFrame)obj; + } + //return (ICStackFrame)getTopStackFrame(); } catch( DebugException e ) { // do nothing @@ -797,7 +802,12 @@ public class CThread extends CDebugElement implements ICThread, IRestart, IResum return this; if ( adapter == ICStackFrame.class ) { try { - return (ICStackFrame)getTopStackFrame(); + // Alain: Put a proper fix later. + Object obj = getTopStackFrame(); + if (obj instanceof ICStackFrame) { + return (ICStackFrame)obj; + } + //return (ICStackFrame)getTopStackFrame(); } catch( DebugException e ) { // do nothing