The Browser Field Formatter is used to control how the fields in a listing are displayed by the Listing. The format specifies which fields are displayed, the order of fields, and the width of each field. The formatter is not normally displayed by default, but can be accessed at anytime by clicking on the icon located in the Listing's toolbar. When the formatter is visible, the button becomes depressed, and can be clicked to hide the formatter.
The listing displays information at each address of a program. This information is broken down into the following categories:
Address Break | Separates non-consecutive addresses |
Plate | Displays plate comments. Other comment types are included in the Instruction/Data element. |
Function | Displays function signatures and function related attributes. |
Variable | Displays information for the return, parameters and local variables associated with a function. |
Instruction/Data | Displays information about instructions or data. |
Open Data | Displays internals of a structure or array. |
Each address has one or more of the above categories of information. Each category has a display format which can be configured. The format consists of multiple lines, each with some number of field controllers. A field controller manages the display of the corresponding field of information in the program. The listing displays fields in the same relative order, size and positioning as determined by the field controller. It is important to understand that the formats, regardless of how they appear, represent the layout of information for a single address.
Whenever the cursor is moved, the Browser Field Formatter automatically switches to the tab associated with the current cursor location. In addition, the field controller for the current cursor location is highlighted.
Adding Fields
New fields can be added to the format by right-clicking on the Browser Field Formatter component and selecting Add Field <name of field> from the popup menu. The new field will be inserted at the right-click point. Only the fields that have already been added to the format show up in the popup menu. If more than one field appears in the popup, an additional menu item, Add FieldAll, is available.
The Spacer Field
A spacer field is used to take up space in the listing. Optionally, spacer fields can display some text (See Set Text). To add a spacer field, right click where a space is desired and select the Add FieldSpacer option from the popup menu. After adding the spacer field, adjust its size to take up more or less space.
Set Text
Spacer fields can optionally have an associated text value. Each spacer's text will be displayed at corresponding locations in the listing. To set text on a spacer field, right click on the field and choose the Set Text option from the popup menu. Entering empty text into the Set Text dialog box will remove any text from the field thus returning the field to a blank spacer.
Removing Fields
Fields can be removed by right clicking on them and selecting Remove Field from the popup menu. All Fields can be removed by right clicking on the header and selecting the Remove All Fields option from the popup menu.
Moving Fields
Fields can be moved by dragging and dropping the corresponding field controller in the Browser Field Formatter. Field controllers can be dropped onto any line in the formatter. Since fields cannot overlap, dropping a field controller onto another field controller will cause the dropped field to appear either entirely before or directly after the other field, depending on which is closer to the drop point.
Once a field controller has been moved, the remaining field controllers always move as far to the left as possible to fill up any empty space. So if a field is moved off of a row, all the fields to its right, move left to fill in the empty space. If a field is dropped before another field, that field and all the fields to its right are moved to the right to make room for the new field. Spacer fields can be inserted before a field to move it further to the right.
Disabling Fields
Fields can be disabled by right clicking on them and selecting Disable Field from the popup menu. Disabled fields still take up space in the overall layout, but they don't display any information in the listing.
Enable Field
Disabled fields can be enabled by right clicking on them and selecting Enable Field from the popup menu. The field will then display information in the listing.
Insert Row
A new row for placing fields can be inserted by right clicking and selecting Insert Row from the popup menu. A new empty row will then be inserted at point where the mouse was clicked. Empty rows do not affect the listing because any rows (even rows that have fields) that don't have displayable information are suppressed from the listing.
Remove Row
Empty rows can be deleted by right clicking on the row and selecting the Remove Row option from the popup menu. The Remove Row option is not available if the row is not empty.
Reset Format
Reset the format of the currently displayed category to the default settings by right clicking on the Browser Field Formatter and select Reset Format on the popup.
Reset All Formats
Reset the formats for all categories to their default settings by right clicking on the Browser Field Formatter and select Reset All Formats on the popup.
A structure is normally displayed using the Instruction/Data category format. However, it is possible to create a custom format to display the structure. This custom format allow you to include members of the structure in its display.
Create Custom Format
To create a custom format, right click on the formatter when the cursor is over a structure and choose the Create Custom Format option. A new format will be created with the same format as the Instruction/Data format. In addition to all the standard fields, a displayable field is created for each member and is available in the Add Field submenu.
Delete Custom Format
To delete a custom format, select its tab, right click in the Browser Field Formatter and select the Delete Custom Format option. The format will revert to the general instruction format.
Save Custom Format
Newly created Custom Formats are temporary and must be saved to the program in order to be reused the next time the program is opened. To save a custom format, select its tab, right click in the Browser Field Formatter and select the Save Custom Format option.
The program must be saved after saving a custom format.
The table below shows a listing of all fields along with a brief description of the type of information they display. The category from which the field can be accessed is also provided. In some instances a field can be accessed from more than one category.
Field Name Category Description Address Instruction/Data; Open Data Displays addresses in the program Bytes Instruction/Data; Open Data Displays the bytes that make up an instruction or data EOL Comment Instruction/Data; Open Data Displays the end of line comment Field Name Open Data Displays the name of the data fields in a structure Function Call-Fixup Function Displays the name of the Call-Fixup associated with the function. Function Purge Function Displays the number of bytes purged from the stack for a function Function Repeatable Comment Function Displays the function's comment that will appear at all calls to that function Function Signature Function Displays the full function prototype, including calling convention, function name, return data type and parameters. In addition the presence of the following function attributes will be indicated: inline, no-return, and thunk. If the function has varargs, the last parameter position will include "...". Function Tags Function Displays all tags associated with this function Label Instruction/Data; Open Data Displays all labels for an address Memory Block Start Plate Displays information about the memory block Mnemonic Instruction/Data; Open Data Displays the name of the instruction or data Operands Instruction/Data; Open Data Displays the input to the instruction or the data value
Parallel || Instruction/Data Displays a parallel indicator (e.g., || ) to indicate that the current instruction executes in parallel with the previous instruction. Plate Comment Plate Displays the block header comment PCode Instruction/Data; Open Data Displays the micro-code for an instruction Post-Comment Instruction/Data; Open Data Displays the comment following an instruction or data Pre-Comment Instruction/Data; Open Data Displays the comment preceding an instruction or data Register Function Displays the values of registers at the entry point of a function Register Transition Instruction/Data Displays the values of registers at the points where the value transitions to a new value. Separator Address Break Displays a "......." when there is a gap between addresses Signature Source Function Indicates the source-type associated with the function signature (i.e., DEFAULT, ANALYSIS, IMPORTED, USER_DEFINED). Space Instruction/Data Displays one or more blank lines as established by a plugin Spacer All Used to separate other fields. Can optionally display static text Stack Depth Instruction/Data Indicates the current stack-pointer offset relative to its state at the start of the associated function. The field is only displayed for instructions contained within a function. A bogus value indicates that the calculation failed to determine the stack depth (i.e., -7fffffff or 7fffffff). Thunked-Function Function Shows the name of the thunked-function to for those functions designated as a "thunk" function (see Function Signature field). Variable Comment Variable Displays the comment for a variable Variable Name Variable Display the name of a variable Variable Location Variable Displays the storage location associated with a the variable (e.g., register, stack, memory, unique-hash, etc.) Variable Type Variable Displays the data type for variable Variable XRef Variable Displays a list of addresses whose instructions reference a variable Variable XRef Header Variable Displays the number of references and offcut references to a variable XREF Instruction/Data; Open Data Displays a list of addresses whose instruction refers to this address. XREF Header Instruction/Data; Open Data Displays the number of references and offcut references to this address. + Instruction/Data; Open Data Opens and Closes structures and arrays.
Provided by: Code Browser plugin