The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at http://www.eclipse.org/legal/epl-v10.html.
+For purposes of the EPL, "Program" will mean the Content.
+
+
If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at http://www.eclipse.org.
+
+
\ No newline at end of file
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/build.properties b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/build.properties
new file mode 100644
index 00000000000..802b71148c9
--- /dev/null
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/,\
+ contexts.xml,\
+ about.html
+src.includes = about.html
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/icons/memorybrowser_view.gif b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/icons/memorybrowser_view.gif
new file mode 100755
index 00000000000..7ce1112834c
Binary files /dev/null and b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/icons/memorybrowser_view.gif differ
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml
new file mode 100644
index 00000000000..9c183b08ab9
--- /dev/null
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java
new file mode 100644
index 00000000000..407ccc1ad2a
--- /dev/null
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Wind River Systems, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ted R Williams (Wind River Systems, Inc.) - initial implementation
+ *******************************************************************************/
+
+package org.cdt.debug.ui.memory.memorybrowser;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+
+public class GoToAddressBarWidget {
+
+ private Text fExpression;
+ private Button fOKButton;
+ private Button fOKNewTabButton;
+ private Composite fComposite;
+
+ protected static int ID_GO_NEW_TAB = 2000;
+
+ /**
+ * @param parent
+ * @return
+ */
+ public Control createControl(Composite parent)
+ {
+ fComposite = new Composite(parent, SWT.NONE);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(fComposite, // FIXME
+ ".GoToAddressComposite_context"); //$NON-NLS-1$
+
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 6;
+ layout.makeColumnsEqualWidth = false;
+ layout.marginHeight = 0;
+ layout.marginLeft = 0;
+ fComposite.setLayout(layout);
+
+ fExpression = new Text(fComposite, SWT.SINGLE | SWT.BORDER);
+ fExpression.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ fOKButton = new Button(fComposite, SWT.NONE);
+ fOKButton.setText("Go");
+
+ fOKNewTabButton = new Button(fComposite, SWT.NONE);
+ fOKNewTabButton.setText("New Tab");
+
+ return fComposite;
+ }
+
+ public int getHeight()
+ {
+ int height = fComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
+ return height;
+ }
+
+ public Button getButton(int id)
+ {
+ if (id == IDialogConstants.OK_ID)
+ return fOKButton;
+ if (id == ID_GO_NEW_TAB)
+ return fOKNewTabButton;
+ return null;
+ }
+
+ public String getExpressionText()
+ {
+ return fExpression.getText().trim();
+ }
+
+ public Text getExpressionWidget()
+ {
+ return fExpression;
+ }
+}
\ No newline at end of file
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
new file mode 100644
index 00000000000..d49e8190481
--- /dev/null
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
@@ -0,0 +1,595 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Wind River Systems, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ted R Williams (Wind River Systems, Inc.) - initial implementation
+ *******************************************************************************/
+
+package org.cdt.debug.ui.memory.memorybrowser;
+
+import java.lang.reflect.Method;
+import java.math.BigInteger;
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchListener;
+import org.eclipse.debug.core.model.IDebugTarget;
+import org.eclipse.debug.core.model.IMemoryBlock;
+import org.eclipse.debug.core.model.IMemoryBlockExtension;
+import org.eclipse.debug.core.model.IMemoryBlockRetrieval;
+import org.eclipse.debug.core.model.IMemoryBlockRetrievalExtension;
+import org.eclipse.debug.core.model.MemoryByte;
+import org.eclipse.debug.internal.ui.memory.MemoryRenderingManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.contexts.DebugContextEvent;
+import org.eclipse.debug.ui.contexts.IDebugContextListener;
+import org.eclipse.debug.ui.memory.IMemoryRendering;
+import org.eclipse.debug.ui.memory.IMemoryRenderingContainer;
+import org.eclipse.debug.ui.memory.IMemoryRenderingSite;
+import org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService;
+import org.eclipse.debug.ui.memory.IMemoryRenderingType;
+import org.eclipse.debug.ui.memory.IRepositionableMemoryRendering;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ColorRegistry;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.viewers.IBasicPropertyConstants;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabFolder2Adapter;
+import org.eclipse.swt.custom.CTabFolderEvent;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchPreferenceConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.progress.WorkbenchJob;
+
+/**
+ * A lightweight rendering container.
+ *
+ * Debug model requirements:
+ * IMemoryBlockExtension (IMemoryBlock not supported)
+ * IMemoryBlockRetrievalExtension
+ *