Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Khodjaiants2004-12-03 19:36:11 +0000
committerMikhail Khodjaiants2004-12-03 19:36:11 +0000
commitd76c1565fccc785c374279128f81b05fd3fc2529 (patch)
tree78b1222f50ffe4e44740dbfb7680452919221f71
parent43b8e1ffedcbec13b86ba9379cf9a0cd593686e6 (diff)
downloadorg.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.
-rw-r--r--debug/org.eclipse.cdt.debug.core/ChangeLog4
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java1
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java12
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() ) {

Back to the top