diff --git a/GhidraDocs/GhidraClass/Debugger/A2-UITour.html b/GhidraDocs/GhidraClass/Debugger/A2-UITour.html index 63e0f8913d..5cb1debdfe 100644 --- a/GhidraDocs/GhidraClass/Debugger/A2-UITour.html +++ b/GhidraDocs/GhidraClass/Debugger/A2-UITour.html @@ -352,9 +352,9 @@ id="the-listings-are-not-in-sync-i.e.-they-do-not-move-together." class="level3">

The listings are not in sync, i.e., they do not move together.

First, check that synchronization is enabled. This is the default -behavior, but, still, check it first. In the top-right of the Dynamic -Listing is its local drop-down menu. Click it and check that -Auto-Sync Cursor with Static Listing is selected.

+behavior, but, still, check it first. In the Debugger → +Synchronization menu, check that Synchronize Static and +Dynamic Locations is selected.

If that does not work, check the top-left label of the Dynamic Listing to see what module you are in. Also check the Debug Console window. If you are in a system library, e.g., ld-linux, diff --git a/GhidraDocs/GhidraClass/Debugger/A2-UITour.md b/GhidraDocs/GhidraClass/Debugger/A2-UITour.md index 24d1bdd013..6efd4f0871 100644 --- a/GhidraDocs/GhidraClass/Debugger/A2-UITour.md +++ b/GhidraDocs/GhidraClass/Debugger/A2-UITour.md @@ -167,8 +167,7 @@ The re-use of connections and/or the use of multiple concurrent connections is * First, check that synchronization is enabled. This is the default behavior, but, still, check it first. -In the top-right of the Dynamic Listing is its local drop-down menu. -Click it and check that **Auto-Sync Cursor with Static Listing** is selected. +In the **Debugger → Synchronization** menu, check that **Synchronize Static and Dynamic Locations** is selected. If that does not work, check the top-left label of the Dynamic Listing to see what module you are in. Also check the Debug Console window. diff --git a/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html index 954e3b8211..8d514d35c7 100644 --- a/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html +++ b/GhidraDocs/GhidraClass/Debugger/A3-Breakpoints.html @@ -162,8 +162,7 @@ src="images/breakpoint-enable.png" alt="set breakpoint" /> Set Breakpoint, press K on the keyboard, or double-click the margin.

  • From the Breakpoints window, use the Set Breakpoint -dropdown to access the various breakpoint actions defined by -GDB.
  • +dropdown to access the various breakpoint actions defined by GDB.
  • From the Terminal window, use the GDB command, e.g., break main.
  • diff --git a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html index 9a149b9e11..ce1a2751a3 100644 --- a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html +++ b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.html @@ -239,11 +239,11 @@ caused the target to break. This only applies to snapshots that were created because of an event, which is most.
  • The PC column gives the address of the next instruction.
  • +
  • The Module column gives the name of the module +containing the PC.
  • The Function column gives the name of the function containing the PC mapped to its static program database, if available.
  • -
  • The Module column gives the name of the module -containing the PC.
  • The Description column describes the event that generated the snapshot. This can be edited in the table, or by pressing CTRL-SHIFT-N to diff --git a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md index b842ddb110..e81c74c81f 100644 --- a/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md +++ b/GhidraDocs/GhidraClass/Debugger/A5-Navigation.md @@ -128,8 +128,8 @@ The columns are: * The **Event Thread** column indicates which thread caused the target to break. This only applies to snapshots that were created because of an event, which is most. * The **PC** column gives the address of the next instruction. -* The **Function** column gives the name of the function containing the PC mapped to its static program database, if available. * The **Module** column gives the name of the module containing the PC. +* The **Function** column gives the name of the function containing the PC mapped to its static program database, if available. * The **Description** column describes the event that generated the snapshot. This can be edited in the table, or by pressing **`CTRL`-`SHIFT`-`N`** to mark interesting snapshots. diff --git a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html index c35e1f8d6e..9b3e65a298 100644 --- a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html +++ b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.html @@ -55,9 +55,9 @@ Mappings
  • Moving Knowledge from Dynamic to Static
  • -
  • Exercise: Export and Map -ncurses
  • +
  • Exercise: Export +and Map system-supplied DSO
  • Exercise: Cheat Like the Devs
  • @@ -276,7 +276,7 @@ anyway.

  • The table displays the copy plan. For a new program, this will copy with an identical mapping of addresses, which is probably the best plan, since the target system has already applied fixups. Do -not change any addresses, lest your corrupt references in the +not change any addresses, lest you corrupt references in the copy.

  • Click Copy.

  • When prompted, name the program libncurses.

  • @@ -296,8 +296,9 @@ libncurses.
  • Check the proposed mapping and click OK.
  • -
    -

    Exercise: Export and Map ncurses

    +
    +

    Exercise: Export and Map system-supplied DSO

    Repeat this technique for the “system-supplied DSO” module. In practice, there is no real reason to do this, but this particular module prevents you from using Import From File System.

    diff --git a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md index a3347d8e58..92fc2844e2 100644 --- a/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md +++ b/GhidraDocs/GhidraClass/Debugger/A6-MemoryMap.md @@ -144,7 +144,7 @@ For demonstration, we will walk through this second case, pretending we cannot l 1. It is probably best to include everything, though **Bytes** is the bare minimum. 1. The table displays the *copy plan*. For a new program, this will copy with an identical mapping of addresses, which is probably the best plan, since the target system has already applied fixups. - Do not change any addresses, lest your corrupt references in the copy. + Do not change any addresses, lest you corrupt references in the copy. 1. Click **Copy**. 1. When prompted, name the program `libncurses`. 1. You may need to click the `termmines` tab in the Static Listing to get the UI to completely update. @@ -157,7 +157,7 @@ Undoubtedly, we would like to map that new program into our dynamic session. 1. In the top pane of the Modules window, right-click `libncurses` and choose **Map to libncurses**. 1. Check the proposed mapping and click **OK**. -## Exercise: Export and Map `ncurses` +## Exercise: Export and Map `system-supplied DSO` Repeat this technique for the "system-supplied DSO" module. In practice, there is no real reason to do this, but this particular module prevents you from using **Import From File System**.