diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java index 16525a24948..2059ff31fa4 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java @@ -655,6 +655,9 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode */ int startIdx = "GRP(".length(); //$NON-NLS-1$ int endIdx = expression.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } String remaining = expression.substring(endIdx+1); if ( ! remaining.startsWith(".REG(") ) { //$NON-NLS-1$ return null; @@ -665,6 +668,9 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode */ startIdx = ".REG(".length(); //$NON-NLS-1$ endIdx = remaining.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } remaining = remaining.substring(endIdx+1); /* @@ -675,6 +681,9 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode } startIdx = ".BFLD(".length(); //$NON-NLS-1$ endIdx = remaining.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } String bitFieldName = remaining.substring(startIdx, endIdx); /* diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java index de94c23924e..63ceeaa3ecd 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java @@ -359,6 +359,9 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode */ int startIdx = "GRP(".length(); //$NON-NLS-1$ int endIdx = expression.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } String groupName = expression.substring(startIdx, endIdx); return groupName.trim(); } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java index 7469de513a0..9320c7f5464 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java @@ -648,6 +648,9 @@ public class RegisterVMNode extends AbstractExpressionVMNode */ int startIdx = "GRP(".length(); //$NON-NLS-1$ int endIdx = expression.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } String remaining = expression.substring(endIdx+1); if ( ! remaining.startsWith(".REG(") ) { //$NON-NLS-1$ return null; @@ -658,6 +661,9 @@ public class RegisterVMNode extends AbstractExpressionVMNode */ startIdx = ".REG(".length(); //$NON-NLS-1$ endIdx = remaining.indexOf(')', startIdx); + if ( startIdx == -1 || endIdx == -1 ) { + return null; + } String regName = remaining.substring(startIdx,endIdx); return regName.trim(); }