diff options
author | Mikhail Khodjaiants | 2004-12-03 19:36:11 +0000 |
---|---|---|
committer | Mikhail Khodjaiants | 2004-12-03 19:36:11 +0000 |
commit | d76c1565fccc785c374279128f81b05fd3fc2529 (patch) | |
tree | 78b1222f50ffe4e44740dbfb7680452919221f71 | |
parent | 43b8e1ffedcbec13b86ba9379cf9a0cd593686e6 (diff) | |
download | org.eclipse.cdt-d76c1565fccc785c374279128f81b05fd3fc2529.tar.gz org.eclipse.cdt-d76c1565fccc785c374279128f81b05fd3fc2529.tar.xz org.eclipse.cdt-d76c1565fccc785c374279128f81b05fd3fc2529.zip |
Fix for bug 80106: Terminating during stepping state caused exception in CDT.
3 files changed, 12 insertions, 5 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 05891aa8dfe..3079917f147 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2004-12-03 Mikhail Khodjaiants
+ Fix for bug 80106: Terminating during stepping state caused exception in CDT.
+ * CThread.java
+
2004-12-01 Mikhail Khodjaiants
Partial fix for bug 77444: CDT does not handle address breakpoints across sessions.
* CBreakpointManager.java
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index 5d6634db21b..01eeecb9dd9 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -591,7 +591,6 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv currentCDIThread = getCDITarget().getCurrentThread(); } catch( CDIException e ) { - CDebugCorePlugin.log( e ); } for( int i = 0; i < cdiThreads.length; ++i ) { CThread thread = findThread( oldList, cdiThreads[i] ); 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 a5017202ff8..8e0b2d7cf6f 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 @@ -156,13 +156,17 @@ public class CThread extends CDebugElement implements ICThread, IRestart, IResum int depth = getStackDepth(); ICDIStackFrame[] frames = (depth != 0) ? getCDIStackFrames( 0, (depth > getMaxStackDepth()) ? getMaxStackDepth() : depth ) : new ICDIStackFrame[0]; if ( fStackFrames.isEmpty() ) { - addStackFrames( frames, 0, frames.length ); + if ( frames.length > 0 ) { + addStackFrames( frames, 0, frames.length ); + } } else if ( depth < getLastStackDepth() ) { disposeStackFrames( 0, getLastStackDepth() - depth ); - updateStackFrames( frames, 0, fStackFrames, fStackFrames.size() ); - if ( fStackFrames.size() < frames.length ) { - addStackFrames( frames, fStackFrames.size(), frames.length - fStackFrames.size() ); + if ( frames.length > 0 ) { + updateStackFrames( frames, 0, fStackFrames, fStackFrames.size() ); + if ( fStackFrames.size() < frames.length ) { + addStackFrames( frames, fStackFrames.size(), frames.length - fStackFrames.size() ); + } } } else if ( depth > getLastStackDepth() ) { |