diff --git a/Ghidra/Debug/Debugger/certification.manifest b/Ghidra/Debug/Debugger/certification.manifest index 8c5d47f488..c6c0360437 100644 --- a/Ghidra/Debug/Debugger/certification.manifest +++ b/Ghidra/Debug/Debugger/certification.manifest @@ -105,6 +105,11 @@ src/main/help/help/topics/DebuggerRegistersPlugin/images/DebuggerRegistersPlugin src/main/help/help/topics/DebuggerRegistersPlugin/images/select-registers.png||GHIDRA||||END| src/main/help/help/topics/DebuggerStackPlugin/DebuggerStackPlugin.html||GHIDRA||||END| src/main/help/help/topics/DebuggerStackPlugin/images/DebuggerStackPlugin.png||GHIDRA||||END| +src/main/help/help/topics/DebuggerStateEditingPlugin/DebuggerStateEditingPlugin.html||GHIDRA||||END| +src/main/help/help/topics/DebuggerStateEditingPlugin/images/write-disabled.png||GHIDRA||||END| +src/main/help/help/topics/DebuggerStateEditingPlugin/images/write-emulator.png||GHIDRA||||END| +src/main/help/help/topics/DebuggerStateEditingPlugin/images/write-target.png||GHIDRA||||END| +src/main/help/help/topics/DebuggerStateEditingPlugin/images/write-trace.png||Tango Icons - Public Domain||||END| src/main/help/help/topics/DebuggerStaticMappingPlugin/DebuggerStaticMappingPlugin.html||GHIDRA||||END| src/main/help/help/topics/DebuggerStaticMappingPlugin/images/DebuggerStaticMappingPlugin.png||GHIDRA||||END| src/main/help/help/topics/DebuggerTargetsPlugin/DebuggerTargetsPlugin.html||GHIDRA||||END| @@ -192,6 +197,10 @@ src/main/resources/images/table_relationship.png||FAMFAMFAM Icons - CC 2.5||||EN src/main/resources/images/text-xml.png||Oxygen Icons - LGPL 3.0|||Oxygen icon theme (dual license; LGPL or CC-SA-3.0)|END| src/main/resources/images/thread.png||GHIDRA||||END| src/main/resources/images/time.png||FAMFAMFAM Icons - CC 2.5||||END| +src/main/resources/images/write-disabled.png||GHIDRA||||END| +src/main/resources/images/write-emulator.png||GHIDRA||||END| +src/main/resources/images/write-target.png||GHIDRA||||END| +src/main/resources/images/write-trace.png||Tango Icons - Public Domain||||END| src/main/svg/attach.svg||GHIDRA||||END| src/main/svg/blank.svg||GHIDRA||||END| src/main/svg/breakpoint-clear.svg||GHIDRA||||END| @@ -217,6 +226,7 @@ src/main/svg/kill.svg||GHIDRA||||END| src/main/svg/launch.svg||GHIDRA||||END| src/main/svg/memory.svg||GHIDRA||||END| src/main/svg/object-terminated.svg||GHIDRA||||END| +src/main/svg/pencil.png||GHIDRA||||END| src/main/svg/process.svg||GHIDRA||||END| src/main/svg/recording.svg||GHIDRA||||END| src/main/svg/register-marker.svg||GHIDRA||||END| @@ -230,3 +240,7 @@ src/main/svg/stepout.svg||GHIDRA||||END| src/main/svg/stepover.svg||GHIDRA||||END| src/main/svg/stop.svg||GHIDRA||||END| src/main/svg/thread.svg||GHIDRA||||END| +src/main/svg/write-disabled.svg||GHIDRA||||END| +src/main/svg/write-emulator.svg||GHIDRA||||END| +src/main/svg/write-target.svg||GHIDRA||||END| +src/main/svg/write-trace.svg||Tango Icons - Public Domain||||END| diff --git a/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml b/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml index f45b46b223..c2dd57e3d0 100644 --- a/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml +++ b/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml @@ -149,6 +149,10 @@ sortgroup="n" target="help/topics/DebuggerWatchesPlugin/DebuggerWatchesPlugin.html" /> + + diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html index b0850cb8aa..108aa48893 100644 --- a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html +++ b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html @@ -23,17 +23,17 @@

The dynamic listing is analogous to Ghidra's listing for static - analysis, but in the dynamic context. That is, it displays memory contents from a target. More + analysis, but in the dynamic context. It displays annotated memory contents from a target. More precisely, it displays recorded memory contents in a trace. In most use cases, that trace is "at the present," meaning it is the most recent memory from a live target. Multiple listings can be displayed simultaneously, using the same pattern as many other Ghidra windows. The "primary" listing is always displayed and generally tracks with the rest of the tool. Any - listing can be "snapshotted," i.e., duplicated. This is where dynamic listings differ from - static listings. Static snapshots remain in place; they do not automatically navigate. Dynamic - snapshots can still be configured to navigate, following the rest of the tool. A common use is - to configure a "snapshot" to follow the stack pointer. Still, you can disable a listing's - automatic navigation, so it behaves like a true snapshot. A current limitation is that you - cannot use snapshots to display different points in time for the same trace.

+ listing can be "snapshotted," i.e., cloned. This is where dynamic listings differ from static + listings. Static clones remain in place; they do not automatically navigate. Dynamic clones can + still be configured to navigate, following the rest of the tool. A common use is to configure a + clone to follow the stack pointer. Still, you can disable a listing's automatic navigation, so + it behaves like a true clone. A current limitation is that you cannot use clones to display + different points in time for the same trace.

Where applicable, the static listing's location is synchronized to the dynamic listing, and vice versa. The dynamic listing permits most of the same mark-up as the static listing. Any @@ -58,6 +58,12 @@ failed, the first address in the failed range is displayed with a pink background. Otherwise, up-to-date contents are displayed with the default background color.

+

The dynamic listing supports editing memory via the Machine State Editing + Plugin and Service. Such edits are performed as usual: Via the Patch actions, or by pasting byte strings. + These edits may be directed toward a live target, the trace, or the emulator.

+

Actions

The listing provides a variety of actions, some for managing and configuring listings, and @@ -67,7 +73,7 @@

This action is always available in the Window → Debugger menu. It creates a new listing window with the same configuration as the primary dynamic - listing. It is equivalent to "snapshotting" the primary dynamic listing.

+ listing. It is equivalent to cloning the primary dynamic listing.

Export Trace View

@@ -78,11 +84,11 @@

Follows Selected Thread

-

This action is only available on snapshot dynamic listings. The primary listing always - follows the tool's current thread. Disabling this toggle causes the snapshot to remain on its - own current thread rather than following the tool's. The current thread is used when computing - a location to navigate to automatically. It is only applicable when "Track Location" is set to - something other than "Do Not Track."

+

This action is only available on cloned dynamic listings. The primary listing always follows + the tool's current thread. Disabling this toggle causes the clone to remain on its own current + thread rather than following the tool's. The current thread is used when computing a location + to navigate to automatically. It is only applicable when "Track Location" is set to something + other than "Do Not Track."

Track Location

diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html index ee531aed6a..80ca50538b 100644 --- a/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html +++ b/Ghidra/Debug/Debugger/src/main/help/help/topics/DebuggerMemoryBytesPlugin/DebuggerMemoryBytesPlugin.html @@ -23,18 +23,17 @@

The memory, or dynamic bytes, window is analogous to Ghidra's - bytes window for static analysis, but in the dynamic context. That is, it displays memory - contents from a target. More precisely, it displays recorded memory contents in a trace. In - most use cases, that trace is "at the present," meaning it is the most recent memory from a - live target. Multiple memory windows can be displayed simultaneously, using the same pattern as - many other Ghidra windows. The "primary" window is always displayed and generally tracks with - the rest of the tool. Any window can be "snapshotted," i.e., duplicated. This is where memory - windows differ from static bytes windows. Static snapshots remain in place; they do not - automatically navigate. Dynamic snapshots can still be configured to navigate, following the - rest of the tool. A common use is to configure a "snapshot" to follow the stack pointer. Still, - you can disable a window's automatic navigation, so it behaves like a true snapshot. A current - limitation is that you cannot use snapshots to display different points in time for the same - trace.

+ bytes window for static analysis, but in the dynamic context. It displays memory contents from + a target. More precisely, it displays recorded memory contents in a trace. In most use cases, + that trace is "at the present," meaning it is the most recent memory from a live target. + Multiple memory windows can be displayed simultaneously, using the same pattern as many other + Ghidra windows. The "primary" window is always displayed and generally tracks with the rest of + the tool. Any window can be "snapshotted," i.e., cloned. This is where memory windows differ + from static bytes windows. Static clones remain in place; they do not automatically navigate. + Dynamic clones can still be configured to navigate, following the rest of the tool. A common + use is to configure a clone to follow the stack pointer. Still, you can disable a window's + automatic navigation, so it behaves like a true clone. A current limitation is that you cannot + use clones to display different points in time for the same trace.

Because not all memory is recorded, some background coloring is used to indicate the state of attempted memory reads. Regardless of state, the most-recent contents, as recorded in the @@ -45,11 +44,13 @@ failed, the first address in the failed range is displayed with a pink background. Otherwise, up-to-date contents are displayed with the default background color.

-

NOTE: Modification of trace byte contents is a work in progress. At the moment, the feature - is simply disabled. In general, modifications to bytes when the window is "at the present" are - directed to the target. Otherwise, they simply modify the historical or emulated values stored - in the trace. A modification at a given time remains in effect, but stale, for all future times - up to but excluding the time of the next recorded value.

+

The dynamic listing supports editing memory via the Machine State Editing + Plugin and Service. Such edits are performed as usual: Toggling edits and typing into the + editor, or by pasting byte strings. These edits may be directed toward a live target, the + trace, or the emulator. NOTE: Please be wary of hand-typing large edits into the + emulator, since every keystroke may produce a unique scratch snapshot. It is better to paste + such edits instead.

Actions

@@ -60,24 +61,24 @@

This action is always available in the Window → Debugger menu. It creates a new memory window with the same configuration as the primary memory window. - It is equivalent to "snapshotting" the primary memory window.

+ It is equivalent to cloning the primary memory window.

Follows Selected Thread

-

This action is only available on snapshot memory windows. The primary window always follows - the tool's current thread. Disabling this toggle causes the snapshot to remain on its own - current thread rather than following the tool's. The current thread is used when computing a - location to navigate to automatically. It is only applicable when "Track Location" is set to - something other than "Do Not Track."

+

This action is only available on cloned memory windows. The primary window always follows + the tool's current thread. Disabling this toggle causes the clone to remain on its own current + thread rather than following the tool's. The current thread is used when computing a location + to navigate to automatically. It is only applicable when "Track Location" is set to something + other than "Do Not Track."

Track Location

This action is always available on all memory windows. It configures automatic navigation for the window. When location tracking is enabled, the window is automatically navigated to an - address computed from the trace's or target's machine state. The address is also highlighted in - green. The computed address is affected by the tool's current "coordinates," that is the - selected thread, frame, and point in time. The options are pluggable, but currently consist - of:

+ address computed from the trace's or target's machine state. NOTE: This feature is + disabled when the edit toggle is on. The address is also highlighted in green. The computed + address is affected by the tool's current "coordinates," that is the selected thread, frame, + and point in time. The options are pluggable, but currently consist of: