1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Fix for bug 36909.

This commit is contained in:
Mikhail Khodjaiants 2003-04-25 19:38:51 +00:00
parent c8a467dc65
commit 8f19b5929d
9 changed files with 80 additions and 21 deletions

View file

@ -1,3 +1,7 @@
2003-04-25 Mikhail Khodjaiants
Fix for bug 36909
* DisassemblyManager.java: check if the address of a stack frame is not 0;
2003-04-23 Mikhail Khodjaiants
Check for null pointer in 'isCharacter' and 'isCharPointer'.
* CValue.java

View file

@ -208,13 +208,14 @@ public class CStackFrame extends CDebugElement
{
ICDILocation location = getCDIStackFrame().getLocation();
String name = new String();
if ( location.getFunction() != null )
if ( location.getFunction() != null && location.getFunction().trim().length() > 0 )
name += location.getFunction() + "() ";
if ( location.getFile() != null )
if ( location.getFile() != null && location.getFile().trim().length() > 0 )
{
name += "at " + location.getFile() + ":" ;
if ( location.getLineNumber() != 0 )
name += location.getLineNumber();
if ( location.getLineNumber() != 0 )
name += location.getLineNumber();
}
return name.toString();
}

View file

@ -102,13 +102,16 @@ public class DisassemblyManager
if ( frameInfo != null )
{
long address = frameInfo.getAddress();
if ( getDisassemblyStorage() != null && getDisassemblyStorage().containsAddress( address ) )
if ( address != 0 )
{
storage = getDisassemblyStorage();
}
else
{
storage = loadDisassemblyStorage( frameInfo );
if ( getDisassemblyStorage() != null && getDisassemblyStorage().containsAddress( address ) )
{
storage = getDisassemblyStorage();
}
else
{
storage = loadDisassemblyStorage( frameInfo );
}
}
}
return storage;

View file

@ -1,3 +1,9 @@
2003-04-25 Mikhail Khodjaiants
Fix for bug 36909.
* MIFrame.java:
gdb returns "??" as a function name if symbols are not available.
Set the function name in this case to "";
2003-04-24 Alain Magloire
* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java (createMIInfoProgram):

View file

@ -84,7 +84,7 @@ public class MIFrame {
} catch (NumberFormatException e) {
}
} else if (var.equals("func")) {
func = str;
func = ( str != null && str.indexOf( "??" ) != -1 ) ? "" : str;
} else if (var.equals("file")) {
file = str;
} else if (var.equals("line")) {

View file

@ -1,3 +1,9 @@
2003-04-25 Mikhail Khodjaiants
Fix for bug 36909.
* NoSymbolOrSourceElement.java: new file.
* CDTDebugModelPresentation.java
* CUISourceLocator.java
2003-04-24 Mikhail Khodjaiants
Display error messages in the 'Registers' view.
* RegistersView.java

View file

@ -457,17 +457,22 @@ public class CDTDebugModelPresentation extends LabelProvider
{
String label = new String();
label += info.getLevel() + " ";
if ( info.getFunction() != null )
label += info.getFunction() + "() ";
if ( info.getFile() != null )
if ( info.getFunction() != null && info.getFunction().trim().length() > 0 )
{
IPath path = new Path( info.getFile() );
if ( !path.isEmpty() )
label += "at " + ( qualified ? path.toOSString() : path.lastSegment() ) + ":";
label += info.getFunction() + "() ";
if ( info.getFile() != null )
{
IPath path = new Path( info.getFile() );
if ( !path.isEmpty() )
{
label += "at " + ( qualified ? path.toOSString() : path.lastSegment() ) + ":";
if ( info.getFrameLineNumber() != 0 )
label += info.getFrameLineNumber();
}
}
}
if ( info.getFrameLineNumber() != 0 )
label += info.getFrameLineNumber();
else
label += "<symbol not available>";
return label;
}
IDummyStackFrame dummy = (IDummyStackFrame)stackFrame.getAdapter( IDummyStackFrame.class );

View file

@ -0,0 +1,29 @@
/*
*(c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*
*/
package org.eclipse.cdt.debug.internal.ui.editors;
import org.eclipse.debug.core.model.IStackFrame;
/**
* Enter type comment.
*
* @since Apr 25, 2003
*/
public class NoSymbolOrSourceElement
{
private IStackFrame fStackFrame;
public NoSymbolOrSourceElement( IStackFrame frame )
{
fStackFrame = frame;
}
public IStackFrame getStackFrame()
{
return fStackFrame;
}
}

View file

@ -11,6 +11,7 @@ import org.eclipse.cdt.debug.core.sourcelookup.ISourceMode;
import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceLocator;
import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceManager;
import org.eclipse.cdt.debug.internal.ui.editors.FileNotFoundElement;
import org.eclipse.cdt.debug.internal.ui.editors.NoSymbolOrSourceElement;
import org.eclipse.cdt.debug.internal.ui.wizards.AddDirectorySourceLocationWizard;
import org.eclipse.cdt.debug.internal.ui.wizards.AddSourceLocationWizard;
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
@ -77,6 +78,10 @@ public class CUISourceLocator implements IAdaptable
{
res = new FileNotFoundElement( stackFrame );
}
else // don't show in editor
{
res = new NoSymbolOrSourceElement( stackFrame );
}
}
return res;
}