diff options
author | eutarass | 2010-05-04 01:11:56 +0000 |
---|---|---|
committer | eutarass | 2010-05-04 01:11:56 +0000 |
commit | dca028520f0197736bb1dc70c5bb1c88fd8cfb62 (patch) | |
tree | ce34b38c16f3e9864bee4f7a39774e018ec5f244 /plugins/org.eclipse.tm.tcf.debug/src | |
parent | b6a48dc562c3844a3dfab0c362c8bd103c2d2fee (diff) | |
download | org.eclipse.tcf-dca028520f0197736bb1dc70c5bb1c88fd8cfb62.tar.gz org.eclipse.tcf-dca028520f0197736bb1dc70c5bb1c88fd8cfb62.tar.xz org.eclipse.tcf-dca028520f0197736bb1dc70c5bb1c88fd8cfb62.zip |
TCF Debugger: improved source step over command: skip code that has no line number info
Diffstat (limited to 'plugins/org.eclipse.tm.tcf.debug/src')
-rw-r--r-- | plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/actions/TCFActionStepOver.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/actions/TCFActionStepOver.java b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/actions/TCFActionStepOver.java index c8ebdeac3..d61e13539 100644 --- a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/actions/TCFActionStepOver.java +++ b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/actions/TCFActionStepOver.java @@ -104,7 +104,12 @@ public abstract class TCFActionStepOver extends TCFAction implements IRunControl else if (area.end_address != null) pc1 = new BigInteger(area.end_address.toString()); } } - if (getStackFrameIndex() > 0) { + int fno = getStackFrameIndex(); + if (fno < 0) { + exit(null); + return; + } + if (fno > 0) { if (ctx.canResume(IRunControl.RM_STEP_OUT)) { ctx.resume(IRunControl.RM_STEP_OUT, 1, new IRunControl.DoneCommand() { public void doneCommand(IToken token, Exception error) { @@ -154,7 +159,7 @@ public abstract class TCFActionStepOver extends TCFAction implements IRunControl bp = null; } if (step_cnt > 0) { - if (pc0 == null || pc1 == null || state.getData().suspend_pc == null) { + if (pc0 == null && pc1 == null || state.getData().suspend_pc == null) { exit(null); return; } @@ -164,8 +169,7 @@ public abstract class TCFActionStepOver extends TCFAction implements IRunControl if (!line_info.validate(this)) return; TCFSourceRef ref = line_info.getData(); if (ref == null || ref.area == null) { - exit(null); - return; + // No line info for current PC, continue stepping } else if (isSameLine(source_ref.area, ref.area)) { source_ref = ref; |