mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-19 06:55:23 +02:00
Use the same approach to generate expressions and variables labels.
This commit is contained in:
parent
d636abc351
commit
d0af45ca07
2 changed files with 62 additions and 26 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2004-10-06 Mikhail Khodjaiants
|
||||||
|
Use the same approach to generate expressions and variables labels.
|
||||||
|
* CDTDebugModelPresentation.java
|
||||||
|
|
||||||
2004-09-21 Mikhail Khodjaiants
|
2004-09-21 Mikhail Khodjaiants
|
||||||
Fixed the problems with the Disassembly view and address breakpoints caused by switch to IAddress.
|
Fixed the problems with the Disassembly view and address breakpoints caused by switch to IAddress.
|
||||||
* CBreakpointPropertyPage.java
|
* CBreakpointPropertyPage.java
|
||||||
|
|
|
@ -307,6 +307,10 @@ public class CDTDebugModelPresentation extends LabelProvider implements IDebugMo
|
||||||
label.append( getVariableText( (IVariable)element ) );
|
label.append( getVariableText( (IVariable)element ) );
|
||||||
return label.toString();
|
return label.toString();
|
||||||
}
|
}
|
||||||
|
if ( element instanceof IValue ) {
|
||||||
|
label.append( getValueText( (IValue)element ) );
|
||||||
|
return label.toString();
|
||||||
|
}
|
||||||
if ( element instanceof IStackFrame ) {
|
if ( element instanceof IStackFrame ) {
|
||||||
label.append( getStackFrameText( (IStackFrame)element, showQualified ) );
|
label.append( getStackFrameText( (IStackFrame)element, showQualified ) );
|
||||||
return label.toString();
|
return label.toString();
|
||||||
|
@ -473,21 +477,23 @@ public class CDTDebugModelPresentation extends LabelProvider implements IDebugMo
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
IValue value = expression.getValue();
|
IValue value = expression.getValue();
|
||||||
if ( value != null ) {
|
if ( value instanceof ICValue ) {
|
||||||
|
ICType type = null;
|
||||||
|
try {
|
||||||
|
type = ((ICValue)value).getType();
|
||||||
|
}
|
||||||
|
catch( DebugException e1 ) {
|
||||||
|
}
|
||||||
|
if ( type != null && isShowVariableTypeNames() ) {
|
||||||
|
String typeName = getVariableTypeName( type );
|
||||||
|
if ( !isEmpty( typeName ) ) {
|
||||||
|
result.insert( 0, typeName + ' ' );
|
||||||
|
}
|
||||||
|
}
|
||||||
String valueString = DebugUIPlugin.getModelPresentation().getText( value );
|
String valueString = DebugUIPlugin.getModelPresentation().getText( value );
|
||||||
if ( valueString.length() > 0 ) {
|
if ( valueString.length() > 0 ) {
|
||||||
result.append( " = " ).append( valueString ); //$NON-NLS-1$
|
result.append( " = " ).append( valueString ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
if ( isShowVariableTypeNames() ) {
|
|
||||||
String type = null;
|
|
||||||
try {
|
|
||||||
type = value.getReferenceTypeName();
|
|
||||||
}
|
|
||||||
catch( DebugException e ) {
|
|
||||||
}
|
|
||||||
if ( !isEmpty( type ) )
|
|
||||||
result.insert( 0, type + ' ' );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !expression.isEnabled() ) {
|
if ( !expression.isEnabled() ) {
|
||||||
|
@ -519,22 +525,42 @@ public class CDTDebugModelPresentation extends LabelProvider implements IDebugMo
|
||||||
label.append( ']' );
|
label.append( ']' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
label.append( ' ' );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String name = var.getName();
|
String name = var.getName();
|
||||||
if ( name != null )
|
if ( name != null )
|
||||||
label.append( name.trim() );
|
label.append( name.trim() );
|
||||||
IValue value = var.getValue();
|
IValue value = var.getValue();
|
||||||
if ( value instanceof ICDebugElementStatus && !((ICDebugElementStatus)value).isOK() ) {
|
String valueString = DebugUIPlugin.getModelPresentation().getText( value );
|
||||||
label.append( getFormattedString( CDebugUIMessages.getString( "CDTDebugModelPresentation.4" ), ((ICDebugElementStatus)value).getMessage() ) ); //$NON-NLS-1$
|
if ( !isEmpty( valueString ) ) {
|
||||||
|
label.append( " = " ); //$NON-NLS-1$
|
||||||
|
label.append( valueString );
|
||||||
}
|
}
|
||||||
else if ( value instanceof ICValue && value.getValueString() != null ) {
|
}
|
||||||
String valueString = value.getValueString().trim();
|
if ( !((ICVariable)var).isEnabled() ) {
|
||||||
|
label.append( ' ' );
|
||||||
|
label.append( CDebugUIMessages.getString( "CDTDebugModelPresentation.25" ) ); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
return label.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getValueText( IValue value ) throws DebugException {
|
||||||
|
StringBuffer label = new StringBuffer();
|
||||||
|
if ( value instanceof ICDebugElementStatus && !((ICDebugElementStatus)value).isOK() ) {
|
||||||
|
label.append( getFormattedString( CDebugUIMessages.getString( "CDTDebugModelPresentation.4" ), ((ICDebugElementStatus)value).getMessage() ) ); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
else if ( value instanceof ICValue ) {
|
||||||
|
ICType type = null;
|
||||||
|
try {
|
||||||
|
type = ((ICValue)value).getType();
|
||||||
|
}
|
||||||
|
catch( DebugException e ) {
|
||||||
|
}
|
||||||
|
String valueString = value.getValueString().trim();
|
||||||
|
if ( valueString != null ) {
|
||||||
if ( type != null && type.isCharacter() ) {
|
if ( type != null && type.isCharacter() ) {
|
||||||
if ( valueString.length() == 0 )
|
if ( valueString.length() == 0 )
|
||||||
valueString = "."; //$NON-NLS-1$
|
valueString = "."; //$NON-NLS-1$
|
||||||
label.append( "= " ); //$NON-NLS-1$
|
|
||||||
label.append( valueString );
|
label.append( valueString );
|
||||||
}
|
}
|
||||||
else if ( type != null && type.isFloatingPointType() ) {
|
else if ( type != null && type.isFloatingPointType() ) {
|
||||||
|
@ -545,21 +571,15 @@ public class CDTDebugModelPresentation extends LabelProvider implements IDebugMo
|
||||||
valueString = CDebugUIMessages.getString( "CDTDebugModelPresentation.23" ); //$NON-NLS-1$
|
valueString = CDebugUIMessages.getString( "CDTDebugModelPresentation.23" ); //$NON-NLS-1$
|
||||||
if ( CDebugUtils.isNegativeInfinity( floatingPointValue ) )
|
if ( CDebugUtils.isNegativeInfinity( floatingPointValue ) )
|
||||||
valueString = CDebugUIMessages.getString( "CDTDebugModelPresentation.24" ); //$NON-NLS-1$
|
valueString = CDebugUIMessages.getString( "CDTDebugModelPresentation.24" ); //$NON-NLS-1$
|
||||||
label.append( "= " ); //$NON-NLS-1$
|
|
||||||
label.append( valueString );
|
label.append( valueString );
|
||||||
}
|
}
|
||||||
else if ( type == null || (!type.isArray() && !type.isStructure()) ) {
|
else if ( type == null || (!type.isArray() && !type.isStructure()) ) {
|
||||||
if ( valueString.length() > 0 ) {
|
if ( valueString.length() > 0 ) {
|
||||||
label.append( "= " ); //$NON-NLS-1$
|
|
||||||
label.append( valueString );
|
label.append( valueString );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !((ICVariable)var).isEnabled() ) {
|
|
||||||
label.append( ' ' );
|
|
||||||
label.append( CDebugUIMessages.getString( "CDTDebugModelPresentation.25" ) ); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
return label.toString();
|
return label.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -811,13 +831,25 @@ public class CDTDebugModelPresentation extends LabelProvider implements IDebugMo
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getVariableTypeName( ICType type ) {
|
private String getVariableTypeName( ICType type ) {
|
||||||
|
StringBuffer result = new StringBuffer();
|
||||||
String typeName = type.getName();
|
String typeName = type.getName();
|
||||||
if ( type.isArray() && typeName != null ) {
|
if ( type.isArray() && typeName != null ) {
|
||||||
int index = typeName.indexOf( '[' );
|
int index = typeName.indexOf( '[' );
|
||||||
if ( index != -1 )
|
if ( index != -1 )
|
||||||
return typeName.substring( 0, index ).trim();
|
typeName = typeName.substring( 0, index ).trim();
|
||||||
}
|
}
|
||||||
return typeName;
|
if ( typeName != null && typeName.length() > 0 ) {
|
||||||
|
result.append( typeName );
|
||||||
|
if ( type.isArray() ) {
|
||||||
|
int[] dims = type.getArrayDimensions();
|
||||||
|
for( int i = 0; i < dims.length; ++i ) {
|
||||||
|
result.append( '[' );
|
||||||
|
result.append( dims[i] );
|
||||||
|
result.append( ']' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue