diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index fba63132346..cfe31a83650 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-12-02 Mikhail Khodjaiants + Fix for bug 80055: ArrayIndexOutOfBoundsException in DisassemblyView. + * DisassemblyEditorInput.java + 2004-11-26 Mikhail Khodjaiants Do not use "void" if parameter's list is empty when constructing a function or method name for function breakpoints. Name mapping should be done on the implementation level. diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java index 05b6c6134aa..85c70d0fcce 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java @@ -213,8 +213,9 @@ public class DisassemblyEditorInput implements IEditorInput { String opcode = instructions[i].getOpcode(); if ( opcode.length() > maxOpcodeLength ) maxOpcodeLength = opcode.length(); - if ( instructions[i].getOffset() > maxOffset ) { - maxOffset = instructions[i].getOffset(); + long offset = Math.abs( instructions[i].getOffset() ); + if ( offset > maxOffset ) { + maxOffset = offset; } } } @@ -249,8 +250,10 @@ public class DisassemblyEditorInput implements IEditorInput { if ( functionName != null && functionName.length() > 0 ) { sb.append( '<' ); sb.append( functionName ); - if ( instruction.getOffset() != 0 ) { - sb.append( '+' ); + long offset = instruction.getOffset(); + if ( offset != 0 ) { + if ( offset > 0 ) + sb.append( '+' ); sb.append( instruction.getOffset() ); } sb.append( ">:" ); //$NON-NLS-1$