Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/memory
diff options
context:
space:
mode:
authorAlvaro Sanchez-Leon2017-02-08 14:12:53 +0000
committerAlvaro Sanchez-Leon2017-02-13 15:20:51 +0000
commit74aa6f4e71af08cc64151cbb1243ba3723dabeca (patch)
treefa3e06496e8f1aacc4b7d6d6e1717854bda4dad2 /memory
parent11ccc870556f9ae39fa2765df5c2b13f8a5b8b0d (diff)
downloadorg.eclipse.cdt-74aa6f4e71af08cc64151cbb1243ba3723dabeca.tar.gz
org.eclipse.cdt-74aa6f4e71af08cc64151cbb1243ba3723dabeca.tar.xz
org.eclipse.cdt-74aa6f4e71af08cc64151cbb1243ba3723dabeca.zip
Bug 509577 - [Traditional Rendering] Local variables enclosing markings
may be wrong in Little Endian presentation The enclosing markings are meant to reflect contiguous regions of memory, however the current Little Endian representation in the traditional render modifies the memory map to attempt to reflect how the memory would be loaded into registers with a size matching the cell size. The markings are therefore unsuitable for for this special case, this change removes these markings when the Little Endian formatting is selected. Change-Id: I1d7879f8b23329b33e2b17e8c8444d1266b9ef0a
Diffstat (limited to 'memory')
-rwxr-xr-xmemory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/Rendering.java17
-rw-r--r--memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/RenderingAddressInfo.java6
-rw-r--r--memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TraditionalRendering.java3
3 files changed, 22 insertions, 4 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 71c3ec2395d..7b42094bbc6 100755
--- 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
@@ -41,6 +41,7 @@ import org.eclipse.debug.internal.ui.views.memory.MemoryViewUtil;
import org.eclipse.debug.internal.ui.views.memory.renderings.GoToAddressComposite;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
@@ -1894,6 +1895,9 @@ public class Rendering extends Composite implements IDebugEventSetListener
Display.getDefault().asyncExec(new Runnable(){
public void run()
{
+ if (isShowCrossReferenceInfo()) {
+ resolveAddressInfoForCurrentSelection();
+ }
layoutPanes();
}
});
@@ -2346,6 +2350,19 @@ public class Rendering extends Composite implements IDebugEventSetListener
}
/**
+ * @since 1.5
+ */
+ protected boolean isShowCrossReferenceInfo() {
+ // Check settings in preference store
+ IPreferenceStore store = TraditionalRenderingPlugin.getDefault().getPreferenceStore();
+ boolean prefShowInfo = store.getBoolean(TraditionalRenderingPreferenceConstants.MEM_CROSS_REFERENCE_INFO);
+
+ // Cross Reference information can not be properly highlighted for a Little Endian display
+ // see Bug 509577 - [Traditional Rendering] Local variable enclosing markings may be wrong in Little Endian presentation
+ return (!isDisplayLittleEndian() && prefShowInfo);
+ }
+
+ /**
* Provides a string with the information relevant to a given address, the separator helps to format it
* e.g. Separated items by comma, new line, etc.
*
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/RenderingAddressInfo.java b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/RenderingAddressInfo.java
index 8700ba63b67..55126934bbc 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/RenderingAddressInfo.java
+++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/RenderingAddressInfo.java
@@ -217,7 +217,7 @@ public class RenderingAddressInfo extends Rendering
}
private void handleDebugContextChanged(final Object context) {
- if (isDisposed() || context == null || !fParent.isShowCrossRefInfoGlobalPref()) {
+ if (isDisposed() || context == null || !isShowCrossReferenceInfo()) {
// Invalid context or user has chosen not to see additional address information
return;
}
@@ -246,7 +246,7 @@ public class RenderingAddressInfo extends Rendering
final IMemoryBlockAddressInfoItem[] addressInfoItems = getAllAddressInfoItems();
- if (fParent.isShowCrossRefInfoGlobalPref()) {
+ if (isShowCrossReferenceInfo()) {
final String[] types = getAddressInfoItemTypes();
if (!display.isDisposed()) {
@@ -334,7 +334,7 @@ public class RenderingAddressInfo extends Rendering
@Override
Map<BigInteger, List<IMemoryBlockAddressInfoItem>> getVisibleValueToAddressInfoItems() {
IMemoryBlockAddressInfoItem[] items = fAddressInfoItems;
- if (items == null || !fParent.isShowCrossRefInfoGlobalPref()) {
+ if (items == null || !isShowCrossReferenceInfo()) {
fMapStartAddrToInfoItems.clear();
fMapAddrToInfoItems.clear();
return fMapStartAddrToInfoItems;
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TraditionalRendering.java b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TraditionalRendering.java
index c8668add513..e1980d039df 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TraditionalRendering.java
+++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TraditionalRendering.java
@@ -782,6 +782,7 @@ public class TraditionalRendering extends AbstractMemoryRendering implements IRe
/**
* @since 1.4
+ * @deprecated - use: {@link Rendering#isShowCrossReferenceInfo()}
*/
public boolean isShowCrossRefInfoGlobalPref() {
IPreferenceStore store = TraditionalRenderingPlugin.getDefault().getPreferenceStore();
@@ -1264,7 +1265,7 @@ public class TraditionalRendering extends AbstractMemoryRendering implements IRe
// if there is cross reference info types available
// add Actions to allow the user to toggle the visibility for each of them
- if (isShowCrossRefInfoGlobalPref()) {
+ if (fRendering.isShowCrossReferenceInfo()) {
Action[] dynamicActions = fRendering.getDynamicActions();
if (dynamicActions != null) {
sub = new MenuManager(TraditionalRenderingMessages

Back to the top