1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Temporary fix for bug 68915: Invalid values in the Variables view.

This commit is contained in:
Mikhail Khodjaiants 2004-06-30 01:31:50 +00:00
parent c59364cdd5
commit abfe932836
5 changed files with 31 additions and 13 deletions

View file

@ -1,3 +1,8 @@
2004-06-29 Mikhail Khodjaiants
Temporary fix for bug 68915: Invalid values in the Variables view.
* CStackFrame.java
* CThread.java
2004-06-28 Mikhail Khodjaiants 2004-06-28 Mikhail Khodjaiants
Partial fix for bug 45535: Performance problems when debugging. Partial fix for bug 45535: Performance problems when debugging.
Cache the double and float presentations of the floating point types. Cache the double and float presentations of the floating point types.

View file

@ -107,6 +107,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart
} }
protected synchronized List getVariables0() throws DebugException { protected synchronized List getVariables0() throws DebugException {
((CThread)getThread()).switchToFrame( this );
if ( fVariables == null ) { if ( fVariables == null ) {
List vars = getAllCDIVariableObjects(); List vars = getAllCDIVariableObjects();
fVariables = new ArrayList( vars.size() ); fVariables = new ArrayList( vars.size() );
@ -569,10 +570,6 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart
return list; return list;
} }
/*
* protected List getAllCDIVariables() throws DebugException { List list = new ArrayList(); list.addAll( getCDIArguments() ); list.addAll(
* getCDILocalVariables() ); return list; }
*/
protected List getAllCDIVariableObjects() throws DebugException { protected List getAllCDIVariableObjects() throws DebugException {
List list = new ArrayList(); List list = new ArrayList();
list.addAll( getCDIArgumentObjects() ); list.addAll( getCDIArgumentObjects() );

View file

@ -272,6 +272,7 @@ public class CThread extends CDebugElement
{ {
try try
{ {
((CDebugTarget)getDebugTarget()).setCurrentThread( this );
return getCDIThread().getStackFrames( lowFrame, highFrame ); return getCDIThread().getStackFrames( lowFrame, highFrame );
} }
catch( CDIException e ) catch( CDIException e )
@ -1016,6 +1017,7 @@ public class CThread extends CDebugElement
} }
try try
{ {
((CDebugTarget)getDebugTarget()).setCurrentThread( this );
if ( getLastStackFrame() != null ) if ( getLastStackFrame() != null )
{ {
((CDebugTarget)getDebugTarget()).resetRegisters(); ((CDebugTarget)getDebugTarget()).resetRegisters();

View file

@ -1,3 +1,7 @@
2004-06-29 Mikhail Khodjaiants
Temporary fix for bug 68915: Invalid values in the Variables view.
* CDebugUIPlugin.java
2004-06-22 Mikhail Khodjaiants 2004-06-22 Mikhail Khodjaiants
Replaced global resource bundles by messages. Replaced global resource bundles by messages.

View file

@ -311,10 +311,7 @@ public class CDebugUIPlugin extends AbstractUIPlugin implements ISelectionListen
*/ */
public void start( BundleContext context ) throws Exception { public void start( BundleContext context ) throws Exception {
super.start( context ); super.start( context );
IWorkbenchWindow ww = getActiveWorkbenchWindow(); listenSelection( true, this );
if ( ww != null ) {
ww.getSelectionService().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
}
CDebugCorePlugin.getDefault().addCBreakpointListener( CBreakpointUpdater.getInstance() ); CDebugCorePlugin.getDefault().addCBreakpointListener( CBreakpointUpdater.getInstance() );
} }
@ -325,13 +322,26 @@ public class CDebugUIPlugin extends AbstractUIPlugin implements ISelectionListen
*/ */
public void stop( BundleContext context ) throws Exception { public void stop( BundleContext context ) throws Exception {
CDebugCorePlugin.getDefault().removeCBreakpointListener( CBreakpointUpdater.getInstance() ); CDebugCorePlugin.getDefault().removeCBreakpointListener( CBreakpointUpdater.getInstance() );
IWorkbenchWindow ww = getActiveWorkbenchWindow(); listenSelection( false, this );
if ( ww != null ) {
ww.getSelectionService().removeSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
}
if ( fImageDescriptorRegistry != null ) { if ( fImageDescriptorRegistry != null ) {
fImageDescriptorRegistry.dispose(); fImageDescriptorRegistry.dispose();
} }
super.stop( context ); super.stop( context );
} }
void listenSelection( final boolean enable, final ISelectionListener listener ) {
Runnable r = new Runnable() {
public void run() {
IWorkbenchWindow ww = getActiveWorkbenchWindow();
if ( ww != null ) {
if ( enable )
ww.getSelectionService().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, listener );
else
ww.getSelectionService().removeSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, listener );
}
}
};
getWorkbench().getDisplay().asyncExec( r );
}
} }