1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-19 15:05:36 +02:00

Fix for bug 80106: Terminating during stepping state caused exception in CDT.

This commit is contained in:
Mikhail Khodjaiants 2004-12-03 19:14:42 +00:00
parent 6c2e6ea058
commit a2b23f55a3
3 changed files with 12 additions and 5 deletions

View file

@ -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

View file

@ -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] );

View file

@ -156,15 +156,19 @@ 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() ) {
if ( frames.length > 0 ) {
addStackFrames( frames, 0, frames.length );
}
}
else if ( depth < getLastStackDepth() ) {
disposeStackFrames( 0, getLastStackDepth() - depth );
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() ) {
disposeStackFrames( frames.length - depth + getLastStackDepth(), depth - getLastStackDepth() );
addStackFrames( frames, 0, depth - getLastStackDepth() );