# Pseudocode

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Pseudocode View**](https://docs.hex-rays.com/user-guide/subviews#pseudocode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                | Action Name           | Description                                                                                                                                                                                                                           |
| ----------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Jump to operand               | `JumpEnter`           | Jump to the specified address. [More…](#jump-to-operand)                                                                                                                                                                              |
| Jump in a new window          | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                  |
| Jump to previous position     | `Return`              | Return to the previous saved position. [More…](#jump-to-previous-position)                                                                                                                                                            |
| Jump to next position         | `UndoReturn`          | Go to the next saved position. [More…](#jump-to-next-position)                                                                                                                                                                        |
| Empty navigation stack        | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                |
| Jump to pseudocode            | `hx:JumpPseudo`       | Jump to pseudocode                                                                                                                                                                                                                    |
| Jump to address...            | `JumpAsk`             | Jump to the specified address. [More…](#jump-to-address)                                                                                                                                                                              |
| Jump anywhere...              | `JumpAnywhere`        | Jump to any location in the database. [More…](#jump-anywhere)                                                                                                                                                                         |
| Jump by name...               | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names. [More…](#jump-by-name)                                                                                    |
| Jump to function...           | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                             |
| Jump to segment...            | `JumpSegment`         | Jump to the selected segment. [More…](#jump-to-segment)                                                                                                                                                                               |
| Jump to segment register...   | `JumpSegmentRegister` | Jump to the selected segment register change point. [More…](#jump-to-segment-register)                                                                                                                                                |
| Jump to problem...            | `JumpQ`               | Jump to the selected problematic location. [More…](#jump-to-problem)                                                                                                                                                                  |
| List cross references to...   | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                  |
| List cross references from... | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                       |
| Jump to xref to operand...    | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>. [More…](#jump-to-xref-to-operand)           |
| Jump to entry point...        | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>. [More…](#jump-to-entry-point)                                                                                           |
| Jump to file offset...        | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then: [More…](#jump-to-file-offset) |
| Mark position...              | `MarkPosition`        | Remember the current position in the disassembly. [More…](#mark-position)                                                                                                                                                             |
| Jump to marked position...    | `JumpPosition`        | Jump to the selected marked position. [More…](#jump-to-marked-position)                                                                                                                                                               |
| Clear mark...                 | `ClearMark`           | Clear mark                                                                                                                                                                                                                            |

## Jump to operand

Jump to the specified address. By pressing <kbd>Enter</kbd> you navigate in the program in the same way as in a hypertext (the way the web browsers and help screens use). This is the easiest way to explore the program: just position the cursor at the desired name and press `JumpEnter`. Your current address is saved in the jump stack. The Jump to previous position command (action `Return`, usually <kbd>Esc</kbd>) will return you back. If the cursor is at a stack variable, a window with stack variables is opened and the definition of the stack variable is displayed.

## Jump to previous position

Return to the previous saved position. It takes positions from Jumps Stack.

## Jump to next position

Go to the next saved position. This command cancels the last Jump to previous position command.

## Jump to address...

Jump to the specified address. This command jumps to the specified address in the program. IDA will ask you for the target address. You can enter a name or an address as a hexadecimal number with or without a segment. If you enter a valid address then:

* the current address is saved in the jump stack.
* the cursor is positioned to the specified address.

The Jump to previous position command ( action `Return`, usually <kbd>Esc</kbd>) will return you back. In the structure and enum views, the cursor will be moved to the corresponding offset in the current type.

See also [How to enter an address](https://docs.hex-rays.com/user-guide/disassembler/navigation/how-to-enter-an-address)

## Jump anywhere...

Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a unified alternative to the various jump commands and as a faster successor to "Jump to address..." (`JumpAsk` action).

![Jump Anywhere dialog](https://3899235193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd4yKxBBBv1qcoSuL2US4%2Fuploads%2Fgit-blob-265726ba07cefdc7320a2a90f4ed3dedfe31fe00%2Fjump-anywhere.png?alt=media)

**Jump Anywhere key functionalities**:

* Fast, case-insensitive and asynchronous search across functions, local types, names, and segments, with results ranked by type and similarity score.
* Supports searches for both mangled and demangled versions of functions and names.
* Allows searching by address or simple expression, as in "Jump to address...".
* Inline preview of matching results, showing the target location.
* The Jump Anywhere dialog supports jumping to a field offset in the Local Types view, acting as replacement for the “Jump to file offset” dialog.

## How Jump Anywhere Works

The Jump Anywhere performs a case-insensitive search across functions, local types, names, and segments. Matching results are presented in a list along with a preview (disabled under Options → Feature Flags), and can be navigated using the keyboard cursor keys.

If the input can be interpreted as an address expression, an entry for the corresponding destination is automatically added to the top of the results list.

## How to open Jump Anywhere

The Jump Anywhere dialog can be opened using <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>G</kbd> (<kbd>Command</kbd> + <kbd>Alt</kbd> + <kbd>G</kbd> on macOS) shortcut.

Optionally, you can bind it to <kbd>G</kbd> key, replacing the default "Jump to address..." dialog (`JumpAsk` action). This and other related settings (preview pane) can be configured under Options → Feature Flags.

## Adjusting Additional Parameters in idagui.cfg

The behavior of the Jump Anywhere dialog can be customized by editing `idagui.cfg`.

```
//-------------------------------------------------------------------------
//      Jump anywhere parameters
//-------------------------------------------------------------------------

#ifdef __QT__
JUMP_ANYWHERE_MAX_HISTORY = 25     // maximum number of history entries in the jump anywhere dialog
JUMP_ANYWHERE_MAX_RESULTS = 10000  // maximum number of search results (0 = no limit)
#endif
```

The Jump Anywhere feature requires the indexer to be enabled (`ENABLE_INDEXER = YES` in `ida.cfg`). Disabling the indexer is possible in `ida.cfg`, by setting `ENABLE_INDEXER = NO`. This can be useful when running IDA in headless mode, as it avoids the overhead of building and maintaining the index.

## Jump by name...

Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names. IDA will display the list of the names (sorted by addresses) and you can choose a name. Dummy names (generated by IDA) are not listed. Hidden names are not listed either. You can control which names are listed in the Names representation dialog box (Action `SetNameType`, Options → Name representation...).

See also [How to use the lister](https://docs.hex-rays.com/user-guide/user-interface/list-viewers).

## Jump to segment...

Jump to the selected segment. IDA will ask you to select the target segment. After:

* the current address is saved in the jump stack.
* the cursor is positioned to the specified address. The Jump to previous position command (action `Return`, usually <kbd>Esc</kbd>) will return you back. See also: How to choose a segment.

## Jump to segment register...

Jump to the selected segment register change point. IDA will ask you to select a target change point, and after:

* the current address is saved in the jump stack.
* the cursor is positioned to the specified address.

## Jump to problem...

Jump to the selected problematic location. IDA will display the Problems List and will allow you to select a problem. The Jump to previous position command (action `Return`, usually <kbd>Esc</kbd>)(usually Esc) will return you back.

## Jump to xref to operand...

Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>. See also the description of the [cross references window](https://docs.hex-rays.com/user-guide/subviews#cross-references-window).

## Jump to entry point...

This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.

The list of entry points is created at the database creation time. It is not modified after that (for example, renaming an exported function does not change the list of entry points).

## Jump to file offset...

Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then: the current address is saved in the jump stack. the cursor is positioned to the corresponding address. The Jump to previous position command (action `Return`, usually <kbd>Esc</kbd>) will return you back.

## Mark position...

Remember the current position in the disassembly. You can mark certain locations of the file to be able to jump to them quickly (use the Jump to marked position... command). Text description of the location may help to find a desired location easily. First select a slot for the mark, then enter a description for the location.

## Jump to marked position...

Jump to the selected marked position.

IDA will ask you to select a target position. After:

* the current address is saved in the jump stack.
* the cursor is positioned to the specified address. The Jump to previous position command (action `Return`, usually <kbd>Esc</kbd>) will return you back. You can mark the position using the Jump to marked position... command (action `JumpPosition`).
