diff options
author | Eugene Tarassov | 2012-12-02 01:20:29 +0000 |
---|---|---|
committer | Eugene Tarassov | 2012-12-02 01:20:29 +0000 |
commit | 86c91316fde9f4ce078ff6ac779b0c56d644d071 (patch) | |
tree | 4b3c4e37b349127842ee8b5483687aa1b7119426 /plugins | |
parent | 854f222d947af7a1823e63df51add540a3b8b7d0 (diff) | |
download | org.eclipse.tcf-86c91316fde9f4ce078ff6ac779b0c56d644d071.tar.gz org.eclipse.tcf-86c91316fde9f4ce078ff6ac779b0c56d644d071.tar.xz org.eclipse.tcf-86c91316fde9f4ce078ff6ac779b0c56d644d071.zip |
TCF Debugger: fixed: the Symbol Files dialog box shows same entry two times.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/commands/MemoryMapWidget.java | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/commands/MemoryMapWidget.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/commands/MemoryMapWidget.java index 5bdb1820b..1eee8a029 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/commands/MemoryMapWidget.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/commands/MemoryMapWidget.java @@ -596,6 +596,27 @@ public class MemoryMapWidget { } } + private boolean isLocalEntry(IMemoryMap.MemoryRegion r) { + /* Check if launch configuration contains the entry */ + if (r == null) return false; + String f0 = r.getFileName(); + BigInteger a0 = JSON.toBigInteger(r.getAddress()); + if (a0 != null) + for (IMemoryMap.MemoryRegion c : cur_maps.get(selected_mem_map_id)) { + String f1 = c.getFileName(); + if (f0 != f1) { + if (f0 == null) continue; + if (!f0.equals(f1)) continue; + } + Number a1 = c.getAddress(); + if (a0 != a1) { + if (a0 == null) continue; + } + return true; + } + return false; + } + private void loadTargetMemoryMap() { loaded_files.clear(); target_map.clear(); @@ -620,12 +641,14 @@ public class MemoryMapWidget { } if (map_cache.getData() != null) { for (TCFNodeExecContext.MemoryRegion m : map_cache.getData()) { - Map<String,Object> props = m.region.getProperties(); - target_map.add(new TCFMemoryRegion(props)); - if (props.get(IMemoryMap.PROP_ID) != null) { + if (isLocalEntry(m.region)) { String fnm = m.region.getFileName(); if (fnm != null) loaded_files.add(fnm); } + else { + /* Foreign entry, added by another client or by the target itself */ + target_map.add(new TCFMemoryRegion(m.region.getProperties())); + } } } } |