Selecting is the process of highlighting all or portions of a program in order to perform a task (for example, modular analysis) on the selection. Selecting can be done manually in providers that support selection, like the Code Browser. Selecting can be done based on subroutines, functions, or by following certain types of control flows in the program.
Selections can be created manually within the Code Browser. There are also some predefined types of selections that are available from the tool Select menu. Each predefined type of selection exposes different characteristics of the program.
To create a selection using one of the predefined methods via the menu item SelectSelectionType.
The SelectionTypes and their descriptions are as follows:
|
Selections are meant to be temporary. For example, a left mouse click outside a selection in the Code Browser will make the selection go away. Also, creating a new selection replaces any previous selection rather than adding to it. To retain a selection in a manner that isn't so transient, change it to a highlight.
At any time you can restore the previous selection for the current program by pressing the SelectRestore Selection.
Selection by Flow Tool Options
The Select By Flow plugin adds options to the tool. To view or edit the option settings:
- From the tool's menu select EditTool Options...
- Click on the Selection by Flow tree node
The Selection by Flow tab contains options for indicating the types of flows that will be followed when selecting Limited Flows. The table below lists the Selection by Flow options and their default settings. To follow a particular flow type simply click on the box to check it.
Flow Type to Follow Default Follow computed call false Follow computed jump false Follow conditional call false Follow conditional jump true Follow pointers false Follow unconditional call false Follow unconditional jump true Example: Given Follow conditional jump and Follow unconditional jump are the only types checked. As the program flow is followed the instructions that are encountered are added to the selection, wherever the program jumps will also get added to the selection and the program flow is also followed from there. If a conditional call is encountered, then this instruction gets added to the selection. But the conditional call is not followed and the code at the call's destination is not added since this type isn't being followed. The code for the subroutine at the call's destination could still end up in the selection, if it is flowed to by a different flow path using the flow types being followed.
Provided by: Select By Flow Plugin
A selection will often consist of one or more address ranges. The address ranges do not have to be contiguous. The navigation margin can be used to directly move the location to a particular selected range. To move to the next or previous selection range relative to the current cursor location use the Next Selected Range and Previous Selected Range buttons.
Using the Navigation Margin
One or more green markers will appear in the Navigation Margin, where each green marker corresponds to an address range included in the selection. Clicking on a green marker will cause the Code Browser to navigate to the beginning of the corresponding address range.
Next Selected Range
To move the program's cursor location to the beginning of the next selected range of addresses:
From the menu-bar of the Code Browser, select Navigation Next Selected Range
OR
From the tool-bar of the Code Browser, click the Go to next selected range () button
When the Code Browser is on or after the last address range in the selection, the "Next Selected Range" menu-bar and tool-bar options will be disabled.
Previous Selected Range
To move the program's cursor location to the beginning of the next selected range of addresses:
From the menu-bar of the Code Browser, select NavigationPrevious Selected Range
OR
From the tool-bar of the Code Browser, click the Go to previous selected range () button
When the Code Browser is on or before the first address range in the selection, the "Previous Selected Range" menu-bar and tool-bar options will be disabled.
Provided by: Go To Next-Previous Selected Range Plugin