The TDSBrowser user interface is shown below.
The user interface consists of a main grid showing all main datatypes and functions in the debug help.
Below is a display for line numbers and a source code display for viewing the source code of any function or variable that is selected.
Selecting any item in the grid populates the lower grid and source code display as appropriate.
Querying any value will select the nearest item in the main grid and populate the other displays as appropriate.
Some basic filtering functionality is also provided.
The TDS information shows you the symbol name, calling convention, symbol address, symbol size, symbol type,and the filename and line number for the symbol.
You can sort the data by clicking no the column header and clicking again to reverse the direction of the sort.
If you select any item in the grid the lower grids and source code display are populated with data as appropriate.
If you right click any item a context is displayed which will allow you to perform a symbol relative query.
The line numbers section lists each line number, the address of that line and the offset of that line from the start of the owning function. Note that offsets can be negative as well as positive depending on how the compiler did it's work.
The source code section displays the source code, highlights the selected line and displays information relating to filename, line number, function and address.
Filtering by symbol name allows you to easily find a particular symbol. This is very useful when wanting to decode a crash address that has been provided as relative to a symbol (symbol + offset).
Options on the context menu to allow you to copy the following information to the clipboard:
•Filename and line number. ThSort.pas 80
•Symbol, filename and line number. Thsort.TThreadSortForm.FormCreate ThSort.pas 80
•All symbol details. 4 Thsort.TThreadSortForm.FormCreate Unknown14 (fast this) 0x002F6B40 16 System.Types ThSort.pas 80
Options on the context menu allow you to highlight multiple symbols, and to remove highlights.
Highlighting can useful when you want to easily mark a symbol for future reference. Here's an example image showing some symbols that have been highlighted.