Skip to content

Commit a832bc6

Browse files
committed
Merge remote-tracking branch 'origin/GP-5548_Dan_dynStaticSync--SQUASHED'
2 parents 749ff08 + 31f447e commit a832bc6

File tree

16 files changed

+1415
-1414
lines changed

16 files changed

+1415
-1414
lines changed
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
66
* You may obtain a copy of the License at
7-
*
7+
*
88
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
9+
*
1010
* Unless required by applicable law or agreed to in writing, software
1111
* distributed under the License is distributed on an "AS IS" BASIS,
1212
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package ghidra.app.plugin.core.debug.gui.listing;
16+
package ghidra.debug.api.modules;
1717

1818
import java.util.Objects;
1919

Ghidra/Debug/Debugger/certification.manifest

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ src/main/help/help/topics/DebuggerTraceViewDiffPlugin/images/DebuggerTimeSelecti
6565
src/main/help/help/topics/DebuggerTraceViewDiffPlugin/images/DebuggerTraceViewDiffPlugin.png||GHIDRA||||END|
6666
src/main/help/help/topics/DebuggerWatchesPlugin/DebuggerWatchesPlugin.html||GHIDRA||||END|
6767
src/main/help/help/topics/DebuggerWatchesPlugin/images/DebuggerWatchesPlugin.png||GHIDRA||||END|
68+
src/main/help/help/topics/DynamicStaticSynchronizationPlugin/DynamicStaticSynchronizationPlugin.html||GHIDRA||||END|
6869
src/main/help/help/topics/VariableValueHoverPlugin/VariableValueHoverPlugin.html||GHIDRA||||END|
6970
src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginBrowser.png||GHIDRA||||END|
7071
src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginDecompiler.png||GHIDRA||||END|

Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml

+59-54
Original file line numberDiff line numberDiff line change
@@ -15,112 +15,117 @@
1515
</tocdef>
1616

1717
<tocdef id="DebuggerTroubleshooting" text="Troubleshooting"
18-
sortgroup="b"
19-
target="help/topics/Debugger/Troubleshooting.html" />
18+
sortgroup="b"
19+
target="help/topics/Debugger/Troubleshooting.html" />
2020

2121
<tocdef id="DebuggerConsolePlugin" text="Debug Console"
22-
sortgroup="c"
23-
target="help/topics/DebuggerConsolePlugin/DebuggerConsolePlugin.html" />
22+
sortgroup="c"
23+
target="help/topics/DebuggerConsolePlugin/DebuggerConsolePlugin.html" />
2424

2525
<tocdef id="DebuggerCopyActionsPlugin" text="Copy Actions"
26-
sortgroup="d"
27-
target="help/topics/DebuggerCopyActionsPlugin/DebuggerCopyActionsPlugin.html" />
26+
sortgroup="d"
27+
target="help/topics/DebuggerCopyActionsPlugin/DebuggerCopyActionsPlugin.html" />
2828

2929
<tocdef id="DebuggerModelPlugin" text="Model"
30-
sortgroup="e"
31-
target="help/topics/DebuggerModelPlugin/DebuggerModelPlugin.html" />
30+
sortgroup="e"
31+
target="help/topics/DebuggerModelPlugin/DebuggerModelPlugin.html" />
3232

33-
<tocdef id="DebuggerThreadsPlugin" text="Threads"
34-
sortgroup="f"
35-
target="help/topics/DebuggerThreadsPlugin/DebuggerThreadsPlugin.html" />
33+
<tocdef id="DebuggerThreadsPlugin" text="Threads"
34+
sortgroup="f"
35+
target="help/topics/DebuggerThreadsPlugin/DebuggerThreadsPlugin.html" />
3636

3737
<tocdef id="DebuggerTraceManagerServicePlugin"
3838
text="Trace Management"
3939
sortgroup="g"
4040
target="help/topics/DebuggerTraceManagerServicePlugin/DebuggerTraceManagerServicePlugin.html" />
4141

4242
<tocdef id="DebuggerEmulationServicePlugin" text="Emulation"
43-
sortgroup="h"
44-
target="help/topics/DebuggerEmulationServicePlugin/DebuggerEmulationServicePlugin.html" />
43+
sortgroup="h"
44+
target="help/topics/DebuggerEmulationServicePlugin/DebuggerEmulationServicePlugin.html" />
4545

46-
<tocdef id="DebuggerMemoryBytesPlugin" text="Memory"
47-
sortgroup="i"
48-
target="help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html" />
46+
<tocdef id="DebuggerMemoryBytesPlugin" text="Memory"
47+
sortgroup="i"
48+
target="help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html" />
4949

50-
<tocdef id="DebuggerRegistersPlugin" text="Registers"
51-
sortgroup="j"
52-
target="help/topics/DebuggerRegistersPlugin/DebuggerRegistersPlugin.html" />
50+
<tocdef id="DebuggerRegistersPlugin" text="Registers"
51+
sortgroup="j"
52+
target="help/topics/DebuggerRegistersPlugin/DebuggerRegistersPlugin.html" />
5353

54-
<tocdef id="DebuggerListingPlugin" text="Dynamic Listing"
55-
sortgroup="k"
56-
target="help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html" />
54+
<tocdef id="DebuggerListingPlugin" text="Dynamic Listing"
55+
sortgroup="k"
56+
target="help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html" />
5757

58-
<tocdef id="DebuggerDisassemblerPlugin" text="Disassembly and Assembly"
59-
sortgroup="l"
60-
target="help/topics/DebuggerDisassemblerPlugin/DebuggerDisassemblerPlugin.html" />
58+
<tocdef id="DebuggerDisassemblerPlugin"
59+
text="Disassembly and Assembly"
60+
sortgroup="l"
61+
target="help/topics/DebuggerDisassemblerPlugin/DebuggerDisassemblerPlugin.html" />
6162

6263
<tocdef id="DebuggerStackPlugin" text="Stack"
6364
sortgroup="m"
6465
target="help/topics/DebuggerStackPlugin/DebuggerStackPlugin.html" />
6566

66-
<tocdef id="DebuggerBreakpointsPlugin" text="Breakpoints"
67-
sortgroup="n"
68-
target="help/topics/DebuggerBreakpointsPlugin/DebuggerBreakpointsPlugin.html" >
67+
<tocdef id="DebuggerBreakpointsPlugin" text="Breakpoints"
68+
sortgroup="n"
69+
target="help/topics/DebuggerBreakpointsPlugin/DebuggerBreakpointsPlugin.html">
6970

7071
<tocdef id="DebuggerBreakpointMarkerPlugin"
7172
text="In the Listings"
7273
sortgroup="a"
7374
target="help/topics/DebuggerBreakpointMarkerPlugin/DebuggerBreakpointMarkerPlugin.html" />
7475
</tocdef>
7576

76-
<tocdef id="DebuggerRegionsPlugin" text="Memory Regions"
77-
sortgroup="o"
78-
target="help/topics/DebuggerRegionsPlugin/DebuggerRegionsPlugin.html" />
77+
<tocdef id="DebuggerRegionsPlugin" text="Memory Regions"
78+
sortgroup="o"
79+
target="help/topics/DebuggerRegionsPlugin/DebuggerRegionsPlugin.html" />
7980

80-
<tocdef id="DebuggerTimePlugin" text="Time"
81-
sortgroup="p"
82-
target="help/topics/DebuggerTimePlugin/DebuggerTimePlugin.html" />
81+
<tocdef id="DebuggerTimePlugin" text="Time"
82+
sortgroup="p"
83+
target="help/topics/DebuggerTimePlugin/DebuggerTimePlugin.html" />
8384

84-
<tocdef id="DebuggerModulesPlugin" text="Modules and Sections"
85-
sortgroup="q"
86-
target="help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html" >
85+
<tocdef id="DebuggerModulesPlugin" text="Modules and Sections"
86+
sortgroup="q"
87+
target="help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html">
8788

8889
<tocdef id="DebuggerStaticMappingPlugin" text="Static Mappings"
8990
sortgroup="a"
9091
target="help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html" />
92+
93+
<tocdef id="DynamicStaticSynchronizationPlugin" text="Static Synchronization"
94+
sortgroup="b"
95+
target="help/topics/DynamicStaticSynchronizationPlugin/DynamicStaticSynchronizationPlugin.html" />
9196
</tocdef>
9297

9398
<tocdef id="DebuggerWatchesPlugin" text="Watches"
94-
sortgroup="r"
95-
target="help/topics/DebuggerWatchesPlugin/DebuggerWatchesPlugin.html" />
99+
sortgroup="r"
100+
target="help/topics/DebuggerWatchesPlugin/DebuggerWatchesPlugin.html" />
96101

97102
<tocdef id="VariableValueHoverPlugin" text="Variable Hovers"
98-
sortgroup="s"
99-
target="help/topics/VariableValueHoverPlugin/VariableValueHoverPlugin.html" />
103+
sortgroup="s"
104+
target="help/topics/VariableValueHoverPlugin/VariableValueHoverPlugin.html" />
100105

101106
<tocdef id="DebuggerControlPlugin" text="Control and Machine State"
102-
sortgroup="t"
103-
target="help/topics/DebuggerControlPlugin/DebuggerControlPlugin.html" />
107+
sortgroup="t"
108+
target="help/topics/DebuggerControlPlugin/DebuggerControlPlugin.html" />
104109

105110
<tocdef id="DebuggerMemviewPlugin" text="Memview Plot"
106-
sortgroup="u"
107-
target="help/topics/DebuggerMemviewPlugin/DebuggerMemviewPlugin.html" />
111+
sortgroup="u"
112+
target="help/topics/DebuggerMemviewPlugin/DebuggerMemviewPlugin.html" />
108113

109114
<tocdef id="DebuggerTimeOverviewPlugin" text="Time Overview Sidebar"
110-
sortgroup="v"
111-
target="help/topics/DebuggerTimeOverviewPlugin/DebuggerTimeOverviewPlugin.html" />
115+
sortgroup="v"
116+
target="help/topics/DebuggerTimeOverviewPlugin/DebuggerTimeOverviewPlugin.html" />
112117

113118
<tocdef id="DebuggerPcodeStepperPlugin" text="P-code Stepper"
114-
sortgroup="w"
115-
target="help/topics/DebuggerPcodeStepperPlugin/DebuggerPcodeStepperPlugin.html" />
119+
sortgroup="w"
120+
target="help/topics/DebuggerPcodeStepperPlugin/DebuggerPcodeStepperPlugin.html" />
116121

117122
<tocdef id="DebuggerTraceDiffPlugin" text="Comparing Times"
118-
sortgroup="x"
119-
target="help/topics/DebuggerTraceViewDiffPlugin/DebuggerTraceViewDiffPlugin.html" />
120-
123+
sortgroup="x"
124+
target="help/topics/DebuggerTraceViewDiffPlugin/DebuggerTraceViewDiffPlugin.html" />
125+
121126
<tocdef id="DebuggerPlatformPlugin" text="Platform Selection"
122-
sortgroup="y"
123-
target="help/topics/DebuggerPlatformPlugin/DebuggerPlatformPlugin.html" />
127+
sortgroup="y"
128+
target="help/topics/DebuggerPlatformPlugin/DebuggerPlatformPlugin.html" />
124129
</tocdef>
125130
</tocref>
126131
</tocroot>

Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html

-54
Original file line numberDiff line numberDiff line change
@@ -191,60 +191,6 @@ <H3><A name="auto_disassembly"></A>Auto-Disassembly</H3>
191191
manually using the <A href=
192192
"help/topics/DisassemblerPlugin/Disassembly.htm#Disassemble">Disassemble</A> command.</P>
193193

194-
<H3><A name="auto_sync_cursor_static"></A>Auto-Sync Cursor with Static Listing</H3>
195-
196-
<P>This action is always available, but only on the primary dynamic listing. It configures
197-
location synchronization with the (primary) static listing. When enabled, navigation in either
198-
listing &mdash; including automatic navigation &mdash; automatically navigates to the
199-
corresponding location, if applicable, in the other. In general, "corresponding location" is
200-
computed using information about loaded modules reported by the debugger. For the finer
201-
details, see the <A href=
202-
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
203-
window. When you navigate to a location contained by a module, but there is no corresponding
204-
static location, the listing logs a "missing module" to the console, offering either to import
205-
the module or map it to an existing program. If the cursor cannot be mapped, the other
206-
listing's location is left unchanged. If this does not seem correct. Check your module list and
207-
static mappings.</P>
208-
209-
<H3><A name="auto_sync_selection_static"></A>Auto-Sync Selection with Static Listing</H3>
210-
211-
<P>This action is always available, but only on the primary dynamic listing. It configures
212-
selection synchronization with the (primary) static listing. When enabled, selection in either
213-
listing automatically selects the corresponding ranges, if applicable, in the other. In
214-
general, "corresponding ranges" are computed using information about loaded modules reported by
215-
the debugger. For the finer details, see the <A href=
216-
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
217-
window. Portions of the selection which cannot be mapped are omitted.</P>
218-
219-
<H3><A name="sync_selection_into_static"></A>Sync Selection Here into Static Listing</H3>
220-
221-
<P>This action is available whenever the current context is dynamic and has a selection. It
222-
maps the current dynamic selection to corresponding static ranges and selects those in the
223-
static listing. In general, "corresponding ranges" are computed using information about loaded
224-
modules reported by the debugger. For the finer details, see the <A href=
225-
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
226-
window. Portions of the selection which cannot be mapped are omitted. If no part of the
227-
selection is mappable, an error is displayed in the status bar. This can happen if the module
228-
list is missing, or Ghidra could not find the program for the current module.</P>
229-
230-
<H3><A name="sync_selection_from_static"></A>Sync Selection Here from Static Listing</H3>
231-
232-
<P>This action is available whenever the current context is static and has a selection. It maps
233-
the current static selection to corresponding dynamic ranges and selects those in the dynamic
234-
listing. In general, "corresponding ranges" are computed using information about loaded modules
235-
reported by the debugger. For the finer details, see the <A href=
236-
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
237-
window. Portions of the selection which cannot be mapped are omitted. If no part of the
238-
selection is mappable, an error is displayed in the status bar. This can happen if the module
239-
list is missing, or Ghidra could not find the program for the current module.</P>
240-
241-
<H3><A name="open_program"></A>Open Program</H3>
242-
243-
<P>This action is offered as a resolution whenever a module cannot be automatically opened.
244-
This typically happens when the module's program database has crash data that can be recovered
245-
and/or needs a version upgrade. It will attempt to open the program, allowing Ghidra to prompt
246-
you about the situation.</P>
247-
248194
<H3><A name="read_memory"></A>Read Memory</H3>
249195

250196
<P>This action is available when the current trace is "at the present" with a live target. It
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
2+
3+
<HTML>
4+
<HEAD>
5+
<META name="generator" content=
6+
"HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net">
7+
8+
<TITLE>Debugger: Static Synchronization</TITLE>
9+
<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
10+
<LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
11+
</HEAD>
12+
13+
<BODY lang="EN-US">
14+
<H1><A name="plugin"></A>Debugger: Static Synchronization</H1>
15+
16+
<P>This plugin ensures the static and dynamic listings, byte viewers, etc., all remain
17+
synchronized.</P>
18+
19+
<H2>Actions</H2>
20+
21+
<P>The plugin places a few actions in the <B>Debugger &rarr; Synchronization</B> menu to toggle
22+
synchronization, and to transfer locations and selections on demand.</P>
23+
24+
<H3><A name="sync_locations"></A>Synchronize Static and Dynamic Locations</H3>
25+
26+
<P>This action is always available. When selected, navigation in either listing &mdash;
27+
including automatic navigation &mdash; automatically navigates to the corresponding location,
28+
if applicable, in the other. In general, "corresponding location" is computed using information
29+
about loaded modules reported by the debugger. For the finer details, see the <A href=
30+
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
31+
window. When you navigate to a location contained by a module, but there is no corresponding
32+
static location, a "missing module" appears in the console, offering either to import the
33+
module or map it to an existing program. If the cursor cannot be mapped, the other listing's
34+
location is left unchanged. If this does not seem correct. Check your module list and static
35+
mappings.</P>
36+
37+
<H3><A name="sync_selections"></A>Synchronize Static and Dynamic Selections</H3>
38+
39+
<P>This action is always available. When selected, selection in either listing automatically
40+
selects the corresponding ranges, if applicable, in the other. In general, "corresponding
41+
ranges" are computed using information about loaded modules reported by the debugger. For the
42+
finer details, see the <A href=
43+
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
44+
window. Portions of the selection which cannot be mapped are omitted.</P>
45+
46+
<H3><A name="transfer_selection_dynamic_to_static">Transfer Dynamic Selection to
47+
Static</A></H3>
48+
49+
<P>This action is available when the dynamic listing has a selection. It maps the current
50+
dynamic selection to corresponding static ranges and selects those in the static listing. In
51+
general, "corresponding ranges" are computed using information about loaded modules reported by
52+
the debugger. For the finer details, see the <A href=
53+
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
54+
window. Portions of the selection which cannot be mapped are omitted. If no part of the
55+
selection is mappable, an error is displayed in the status bar. This can happen if the module
56+
list is missing, or Ghidra could not find the program for the current module.</P>
57+
58+
<H3><A name="transfer_selection_static_to_dynamic">Transfer Static Selection to
59+
Dynamic</A></H3>
60+
61+
<P>This action is available when the static listing has a selection. It maps the current static
62+
selection to corresponding dynamic ranges and selects those in the dynamic listing. In general,
63+
"corresponding ranges" are computed using information about loaded modules reported by the
64+
debugger. For the finer details, see the <A href=
65+
"help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html">Static Mappings</A>
66+
window. Portions of the selection which cannot be mapped are omitted. If no part of the
67+
selection is mappable, an error is displayed in the status bar. This can happen if the module
68+
list is missing, or Ghidra could not find the program for the current module.</P>
69+
70+
<H3><A name="open_program"></A>Open Program</H3>
71+
72+
<P>This action is offered as a resolution whenever a module cannot be automatically opened.
73+
This typically happens when the module's program database has crash data that can be recovered
74+
and/or needs a version upgrade. It will attempt to open the program, allowing Ghidra to prompt
75+
you about the situation.</P>
76+
</BODY>
77+
</HTML>

0 commit comments

Comments
 (0)