mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-05 16:56:04 +02:00
The presentation of the stack frame in the Debug view.
This commit is contained in:
parent
20a4419800
commit
27e3c54b89
3 changed files with 102 additions and 6 deletions
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||||
|
* All Rights Reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.eclipse.cdt.debug.core;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Provides the access to the stack frame information.
|
||||||
|
*
|
||||||
|
* @since Aug 16, 2002
|
||||||
|
*/
|
||||||
|
public interface IStackFrameInfo
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Returns the address of this stack frame.
|
||||||
|
*
|
||||||
|
* @return the address of this stack frame
|
||||||
|
*/
|
||||||
|
long getAddress();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the source file of this stack frame or <code>null</code>
|
||||||
|
* if the source file is unknown.
|
||||||
|
*
|
||||||
|
* @return the source file of this stack frame
|
||||||
|
*/
|
||||||
|
String getFile();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the function of this stack frame or <code>null</code>
|
||||||
|
* if the function is unknown.
|
||||||
|
*
|
||||||
|
* @return the function of this stack frame
|
||||||
|
*/
|
||||||
|
String getFunction();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the line number of this stack frame or <code>0</code>
|
||||||
|
* if the line number is unknown.
|
||||||
|
*
|
||||||
|
* @return the line number of this stack frame
|
||||||
|
*/
|
||||||
|
int getFrameLineNumber();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the level of this stack frame.
|
||||||
|
*
|
||||||
|
* @return the level of this stack frame
|
||||||
|
*/
|
||||||
|
int getLevel();
|
||||||
|
}
|
|
@ -47,6 +47,8 @@ public interface ICDIStackFrame extends ICDIObject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the level of the stack frame.
|
* Returns the level of the stack frame.
|
||||||
|
*
|
||||||
|
* @return the level of the stack frame
|
||||||
*/
|
*/
|
||||||
int getLevel();
|
int getLevel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,21 +3,20 @@
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.eclipse.cdt.debug.internal.core;
|
package org.eclipse.cdt.debug.internal.core;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.IStackFrameInfo;
|
||||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICDILocation;
|
import org.eclipse.cdt.debug.core.cdi.ICDILocation;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
|
import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
|
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIArgument;
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable;
|
||||||
import org.eclipse.debug.core.DebugException;
|
import org.eclipse.debug.core.DebugException;
|
||||||
|
@ -33,7 +32,8 @@ import org.eclipse.debug.core.model.IVariable;
|
||||||
* @since Aug 7, 2002
|
* @since Aug 7, 2002
|
||||||
*/
|
*/
|
||||||
public class CStackFrame extends CDebugElement
|
public class CStackFrame extends CDebugElement
|
||||||
implements IStackFrame,
|
implements IStackFrame,
|
||||||
|
IStackFrameInfo,
|
||||||
ICDIEventListener
|
ICDIEventListener
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -484,8 +484,6 @@ public class CStackFrame extends CDebugElement
|
||||||
*/
|
*/
|
||||||
protected static boolean equalFrame( ICDIStackFrame frameOne, ICDIStackFrame frameTwo )
|
protected static boolean equalFrame( ICDIStackFrame frameOne, ICDIStackFrame frameTwo )
|
||||||
{
|
{
|
||||||
//return ( frameOne.getParent().equals( frameTwo.getParent() ) &&
|
|
||||||
// frameOne.getLocation().equals( frameTwo.getLocation() ) );
|
|
||||||
return ( frameOne != null && frameTwo != null && frameOne.getLocation().equals( frameTwo.getLocation() ) );
|
return ( frameOne != null && frameTwo != null && frameOne.getLocation().equals( frameTwo.getLocation() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -507,6 +505,10 @@ public class CStackFrame extends CDebugElement
|
||||||
{
|
{
|
||||||
return getCDIStackFrame();
|
return getCDIStackFrame();
|
||||||
}
|
}
|
||||||
|
if ( adapter == IStackFrameInfo.class )
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
return super.getAdapter( adapter );
|
return super.getAdapter( adapter );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -576,4 +578,42 @@ public class CStackFrame extends CDebugElement
|
||||||
((CVariable)it.next()).dispose();
|
((CVariable)it.next()).dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.debug.core.IStackFrameInfo#getAddress()
|
||||||
|
*/
|
||||||
|
public long getAddress()
|
||||||
|
{
|
||||||
|
return getCDIStackFrame().getLocation().getAddress();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.debug.core.IStackFrameInfo#getFile()
|
||||||
|
*/
|
||||||
|
public String getFile()
|
||||||
|
{
|
||||||
|
return getCDIStackFrame().getLocation().getFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.debug.core.IStackFrameInfo#getFunction()
|
||||||
|
*/
|
||||||
|
public String getFunction()
|
||||||
|
{
|
||||||
|
return getCDIStackFrame().getLocation().getFunction();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.debug.core.IStackFrameInfo#getLevel()
|
||||||
|
*/
|
||||||
|
public int getLevel()
|
||||||
|
{
|
||||||
|
return getCDIStackFrame().getLevel();
|
||||||
|
}
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.debug.core.IStackFrameInfo#getFrameLineNumber()
|
||||||
|
*/
|
||||||
|
public int getFrameLineNumber()
|
||||||
|
{
|
||||||
|
return getCDIStackFrame().getLocation().getLineNumber();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue