diff options
author | Eugene Tarassov | 2012-10-15 07:29:17 +0000 |
---|---|---|
committer | Eugene Tarassov | 2012-10-15 07:30:00 +0000 |
commit | 760a21a8636bc1e3521bcbd6abd6ae1fb37c27c6 (patch) | |
tree | 3482d22be4287bf23e89ef7335f5606442b4d785 /plugins | |
parent | 8ecf00a5cdbd4f4bda8fd04eb36d06e9d8953112 (diff) | |
download | org.eclipse.tcf-760a21a8636bc1e3521bcbd6abd6ae1fb37c27c6.tar.gz org.eclipse.tcf-760a21a8636bc1e3521bcbd6abd6ae1fb37c27c6.tar.xz org.eclipse.tcf-760a21a8636bc1e3521bcbd6abd6ae1fb37c27c6.zip |
TCF Debugger: fixed pin and refresh actions for memory mapped registers
Diffstat (limited to 'plugins')
2 files changed, 13 insertions, 6 deletions
diff --git a/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/commands/TCFPinViewCommand.java b/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/commands/TCFPinViewCommand.java index 4f58708b3..b944c0087 100644 --- a/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/commands/TCFPinViewCommand.java +++ b/plugins/org.eclipse.tcf.cdt.ui/src/org/eclipse/tcf/internal/cdt/ui/commands/TCFPinViewCommand.java @@ -220,7 +220,7 @@ public class TCFPinViewCommand implements IPinProvider { vars = true; mem = true; } - if (IDebugUIConstants.ID_REGISTER_VIEW.equals(id)) done(vars); + if (IDebugUIConstants.ID_REGISTER_VIEW.equals(id)) done(mem); else if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(id)) done(vars); else if (IDebugUIConstants.ID_EXPRESSION_VIEW.equals(id)) done(mem); else done(false); diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeRegister.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeRegister.java index ee74d77b4..91824dad6 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeRegister.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeRegister.java @@ -39,6 +39,7 @@ import org.eclipse.tcf.internal.debug.ui.ImageCache; import org.eclipse.tcf.protocol.IToken; import org.eclipse.tcf.protocol.JSON; import org.eclipse.tcf.services.IRegisters; +import org.eclipse.tcf.services.IRunControl; import org.eclipse.tcf.util.TCFDataCache; import org.eclipse.tcf.util.TCFTask; @@ -203,10 +204,15 @@ public class TCFNodeRegister extends TCFNode implements IElementEditor, IWatchIn } else if (p instanceof TCFNodeExecContext) { TCFNodeExecContext exe = (TCFNodeExecContext)p; - TCFDataCache<TCFContextState> state_cache = exe.getState(); - if (!state_cache.validate(done)) return null; - TCFContextState state = state_cache.getData(); - if (state == null || !state.is_suspended) return true; + TCFDataCache<IRunControl.RunControlContext> ctx_cache = exe.getRunContext(); + if (!ctx_cache.validate(done)) return null; + IRunControl.RunControlContext ctx_data = ctx_cache.getData(); + if (ctx_data != null && ctx_data.hasState()) { + TCFDataCache<TCFContextState> state_cache = exe.getState(); + if (!state_cache.validate(done)) return null; + TCFContextState state_data = state_cache.getData(); + if (state_data == null || !state_data.is_suspended) return true; + } } return false; } @@ -228,7 +234,8 @@ public class TCFNodeRegister extends TCFNode implements IElementEditor, IWatchIn Number addr = ctx.getMemoryAddress(); if (addr != null) { bf.append("Address: ", SWT.BOLD); - bf.append(JSON.toBigInteger(addr).toString(16)); + bf.append("0x", StyledStringBuffer.MONOSPACED); + bf.append(JSON.toBigInteger(addr).toString(16), StyledStringBuffer.MONOSPACED); } if (ctx.isReadable()) { if (l < bf.length()) bf.append(", "); |