Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 5b0763408c8f5aea82d612bfda215af75cc55761 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*******************************************************************************
 * Copyright (c) 2011 Freescale Semiconductor 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
 *******************************************************************************/
package org.eclipse.cdt.debug.ui.memory.memorybrowser.api;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.model.IMemoryBlockRetrieval;

/**
 * Public API for accessing the memory browser. 
 * 
 * <p>
 * All methods must be called on the UI thread, unless otherwise noted. 
 */
public interface IMemoryBrowser {
	/**
	 * Tells the memory browser to go to a new memory location. Updates the goto
	 * address bar and memory space selector (if present).
	 * 
	 * <p>
	 * This operation is a no-op if there is no active memory retrieval object.
	 * 
	 * @param expression
	 *            the expression to go to. Cannot be null or empty string.
	 *            Expression is trimmed.
	 * @param memorySpaceId
	 *            optional memory space ID. Argument is ignored if the memory
	 *            browser is not currently showing a memory space selector. If
	 *            selector is showing, this argument is interpreted as follows:
	 *            empty string means no memory space (as if the user selected
	 *            the "----" memory space), and null means use whatever memory
	 *            space is selected. Passing an ID that is not present in the
	 *            selector will result in an IllegalArgumentException
	 * @param inNewTab
	 *            if true, memory is shown in a new tab
	 * @throws CoreException
	 */
	public void go(String expression, String memorySpaceId, boolean inNewTab) throws CoreException;
	
	/**
	 * Returns the selected memory space.
	 * 
	 * <p>
	 * The memory browser exposes a memory space selector when debugging a
	 * target with multiple memory spaces. The selection provides the context
	 * for the expression when the user performs a GO action. This method will
	 * return the currently selected memory space.
	 * 
	 * @return null if the memory space selector is not shown, or if the n/a
	 *         entry is selected. Otherwise the selected memory space ID. Never
	 *         an empty string.
	 */
	public String getSelectedMemorySpace();
	
	/**
	 * Returns the active memory retrieval object, or null if none is active.
	 * 
	 * This is the retrieval object being used to obtain the memory shown in the
	 * active tab. Note that all simultaneously visible tabs use the same
	 * retrieval object. The retrieval object is obtained from the active debug
	 * context.
	 * 
	 * @return the active memory retrieval object, or null if none is active
	 */
	public IMemoryBlockRetrieval getActiveRetrieval();
}

Back to the top