| Summary: | Traditional memory view does not highlight changed bytes when single steping | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Phil Mason <pmason> | ||||||
| Component: | cdt-memory | Assignee: | cdt-debug-inbox <cdt-debug-inbox> | ||||||
| Status: | NEW --- | QA Contact: | Jonah Graham <jonah> | ||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | cdtdoug, jamesblackburn+eclipse, pawel.1.piech | ||||||
| Version: | 8.0 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | PC | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Phil Mason
Created attachment 203046 [details]
Patch that resolves the bug
On my system this patch resolves the issue.
The change is that now archiveDeltas is called on resume.
Comment on attachment 203046 [details] Patch that resolves the bug From 44d6cd7e2ea5233c1141bf45c7dc131dd6b5eef1 Mon Sep 17 00:00:00 2001 From: Phil Mason <pmason@broadcom.com> Date: Fri, 9 Sep 2011 14:44:57 +0100 Subject: [PATCH] Modified debug event handling so that historyCache is only updated on continue. --- .../cdt/debug/ui/memory/traditional/Rendering.java | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/Rendering.java b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/Rendering.java index 3dfd908..c3dd8a9 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/Rendering.java +++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/Rendering.java @@ -570,6 +570,7 @@ public class Rendering extends Composite implements IDebugEventSetListener boolean isChangeOnly = false; boolean isSuspend = false; boolean isBreakpointHit = false; + boolean isContinue = false; for(int i = 0; i < events.length; i++) { @@ -583,6 +584,8 @@ public class Rendering extends Composite implements IDebugEventSetListener if(source.getDebugTarget() == getMemoryBlock() .getDebugTarget()) { + if ((detail & DebugEvent.RESUME) != 0) + isContinue = true; if((detail & DebugEvent.BREAKPOINT) != 0) isBreakpointHit = true; if(kind == DebugEvent.SUSPEND) @@ -599,6 +602,15 @@ public class Rendering extends Composite implements IDebugEventSetListener } } + if (isContinue) + Display.getDefault().asyncExec(new Runnable() + { + public void run() + { + archiveDeltas(); + } + }); + if(isSuspend) handleSuspend(isBreakpointHit); else if(isChangeOnly) @@ -614,7 +626,6 @@ public class Rendering extends Composite implements IDebugEventSetListener { public void run() { - archiveDeltas(); refresh(); } }); -- 1.7.6 (In reply to comment #2) Sorry, I thought I was editing the previous patch to replace it with an improved version. I'll add the new patch as an attachment and mark the old one as obsolete. Created attachment 203065 [details]
Improved patch that runs archiveDeltas asyncronously
Old patch called archiveDeltas directly. Now it uses asyncExec as it should have done.
|