Skip to content

Commit f56fc7f

Browse files
committed
add better documentation for new xref UI settings
1 parent dcbe7bd commit f56fc7f

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

docs/guide/index.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,13 @@ The Mini Graph only shows content when the currently selected main pane contains
413413

414414
The Cross References view in the lower-left section of the sidebar shows all cross-references to the currently selected address, address range, variable or type. This pane will change depending on whether an entire line is selected (all cross-references to that address/type/variable are shown), or whether a specific token within the line is selected. For instance if you click on the symbol `memmove` in `call memmove` it will display all known cross-references to `memmove`, whereas if you click on the line the `call` instruction is on, you will only get cross-references to the address of the call instruction. Cross-references can be either incoming or outgoing, and they can be either data, code, type, or variable.
415415

416+
When using the `X` hotkey, a [pinned cross-reference](#cross-reference-pinning) tab will be opened and the "Pinned Cross References" panel will be focused. [Some users](migrationguideida.md) may prefer a modal dialog, or the original Binary Ninja behavior of focusing the dynamic cross-reference window. This behavior can be changed either by adjusting the [ui.defaultXrefInterface](settings.md#ui.defaultXrefInterface) setting to `pinned`, `sidebar`, or `dialog` setting, OR by [changing the keybinding](#custom-hotkeys) for the appropriate command palette action:
417+
418+
- `Focus Cross References`
419+
- `Pin Cross References` (opens a new tab in the existing Pinned Cross References dialog)
420+
- `Pin Cross References to New Pane`
421+
- `Cross References Dialog...`
422+
416423
![Cross References](../img/cross-reference-tree.png "xrefs"){ width="600" }
417424

418425
#### Code References
@@ -425,7 +432,7 @@ Data References are references created _by_ data (i.e. pointers), not necessaril
425432

426433
#### Variable References
427434

428-
Variable References are all the set of uses of a given variable. As these references are intraprocedural we're able to show the currently viewed IL in the preview.
435+
Variable References are all the set of uses of a given variable. As these references are intra-procedural we're able to show the currently viewed IL in the preview.
429436

430437
#### Type References
431438

@@ -450,17 +457,19 @@ The first of the two drop down boxes allows the selection of incoming, outgoing,
450457

451458
![xrefs](../img/cross-reference-panel-pin.png "xrefs panel pin"){ width="600" }
452459

453-
By default, Binary Ninja's cross-reference pane is dynamic, allowing quick navigation to relevant references. Sometimes you might rather have the current references stick around, so they can be used as a sort of work-list. This workflow is supported in four different ways. First is the `Pin` checkbox (which is only visible if the `Filter` drop-down is open). This prevents the list of cross-references from being updated even after the current selection is changed.
460+
By default, Binary Ninja's cross-reference pane is dynamic, allowing quick navigation to relevant references. Sometimes you might rather have the current references stick around, so they can be used as a sort of work-list. This workflow is supported in many different ways.
454461

455-
Alternatively clicking the `Pin Cross References to New Pane` button at the top right of the cross references pane in the sidebar, selecting `Pin Cross References` in the context menu or command palette, or using the `SHIFT+X` shortcut pops up a `Pinned Cross References` pane. This pane has a static address range which can only be updated through the `Pin Cross References` action. The third way would be to select (or multi-select in table view) a set of cross-references then right-click `Tag Selected Rows`. The tag pane can then be used to navigate those references. Tags allow for persistent lists to be saved to an analysis database whereas the other options only last for the current session.
462+
1. First is the `Pin` checkbox (which is only visible if the `Filter` drop-down is open). This prevents the list of cross-references from being updated even after the current selection is changed.
463+
1. Second, you can clicking the `Pin Cross References to New Pane` button at the top right of the cross references pane in the sidebar.
464+
1. Third, you can use the `X` hotkey or select `Pin Cross References` in the context menu or command palette.
465+
1. The final way is to select (or multi-select in table view) a set of cross-references then right-click `Tag Selected Rows`. The tag pane can then be used to navigate those references. Tags allow for persistent lists to be saved to an analysis database whereas the other options only last for the current session.
456466

457467
???+ Tip "Tip"
458-
The dynamic cross-reference pane limits the number of references that are displayed at one time to keep the user interface responsive. If the list of references is not complete, a `+` will appear next to the count of references. Clicking the `Pin Cross References to New Pane` button will increase the limit substantially and allow you to see the missing references. The limits for both the dynamic pane and the pinned references can be controlled in the settings.
468+
The dynamic cross-reference pane limits the number of references that are displayed at one time to keep the user interface responsive. If the list of references is not complete, a `+` will appear next to the count of references. Clicking the `Pin Cross References to New Pane` button will increase the limit substantially and allow you to see the missing references. The limits for both the dynamic pane and the pinned references can be controlled in [settings](settings.md#ui.maxXrefItems).
459469

460470
#### Cross-Reference Hotkeys
461471

462-
* `x` - Focus the cross-references pane
463-
* `[SHIFT] x` Create a new pinned cross-references pane
472+
* `x` - Create a new pinned cross-references pane
464473
* `[OPTION/ALT] x` - Navigate to the next cross-reference
465474
* `[OPTION/ALT-SHIFT] x` - Navigate to the previous cross-reference
466475

docs/guide/migration/ghidra/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Binary Ninja's layout is also a bit different from what you're used to in Ghidra
7575

7676
![xref icon >](../../../img/xref-icon.png "Xref Icon")
7777

78-
If you prefer the pop-up style cross-references from IDA or Ghidra, you can enable that behavior by right-clicking on the xref-icon and selecting "Window". Whenever you navigate from the window by double-clicking or pressing enter the main window will be focused. ESC can also be used to close the xref window.
78+
The default behavior of cross-references to open in a tabbed reference UI element simila to how ghidra does it, however the `X` hotkey is used by default (and can be changed in the [keybindings UI](index.md#custom-hotkeys)).
7979

8080
### Theme
8181

docs/guide/migration/migrationguideida.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ Some major exceptions are:
4646

4747
![xref icon >](../../img/xref-icon.png "Xref Icon")
4848

49-
If you prefer the pop-up style cross-references from IDA or Ghidra, you can enable that behavior by right-clicking on the xref-icon and selecting "Window". Whenever you navigate from the window by double-clicking or pressing enter the main window will be focused. ESC can also be used to close the xref window.
49+
The hotkey for Cross-References in Binary Ninja will match your IDA muscle-memory, however the look is simlar to Ghidra with a pinned UI element containing tabs for references. To get the full IDA experience, change the [`ui.defaultXrefInterface`](settings.md#ui.defaultXrefInterface) setting to `dialog`.
50+
51+
<!-- TODO: Make a screenshot -->
5052

5153
## Theme
5254

docs/img/xref-setting.png

35.9 KB
Loading

0 commit comments

Comments
 (0)