Using the Process Window
The Process Window contains various panes that display the code for the process or thread that you’re debugging, as well as other related information. The large scrolling list in the middle is the Source Pane. (The contents of these panes are discussed later in this section.
)
As you examine the Process Window, notice the following:
• The thread ID shown in the Root Window and in the process’s Threads Tab with the Tabs Pane is the logical thread ID (TID) assigned by TotalView and the system-assigned thread ID (SYSTID). On systems where the TID and SYSTID values are the same, TotalView displays only the TID value.
In other windows, TotalView uses the pid.tid value to identify a process’s threads.
The Threads Tab shows the threads that currently exist in a process. When you select a different thread in this list, TotalView updates the Stack Trace, Stack Frame, and Source Pane to show the information for that thread. When you dive on a different thread in the thread list, TotalView finds or opens a new window that displays information for that thread.
• The Stack Trace Pane shows the
call stack of routines that the selected thread is executing. You can move up and down the
call stack by clicking on the routine’s name (stack
frame). When you select a different stack frame, TotalView updates the Stack Frame and Source Pane with the information about the routine you just selected.
• The Stack Frame Pane displays all a routine’s parameters, its local variables, and the registers for the selected stack frame.
• The information displayed in the Stack Trace and Stack Frame Panes reflects the state of a process when it was last stopped. Consequently, the information is not up-to-date while a thread is running.
• The left margin of the
Source Pane displays line numbers and
action point icons.
You can place a
breakpoint at any line whose line number is contained within a box indicating that this is executable code. You can also click on a line without a breakpoint box to create a sliding or pending breakpoint.
The Source Pane display unifies source-line breakpoint boxes across all image files within the share group that contain the source file. For example, the source-line breakpoint boxes will be unified for all instances of a source file or header file that is compiled into multiple shared libraries used by the process.
When you place a breakpoint on a line, TotalView places a
icon over the line number. An arrow over the line number shows the current location of the program counter (PC) in the selected stack frame.
Each thread has its own unique program counter (PC). When you stop a multi-process or multi-threaded program, the routine displayed in the Stack Trace Pane for a thread depends on the thread’s PC. Because threads execute asynchronously, threads are stopped at different places. (When your thread hits a breakpoint, the default is to stop all the other threads in the process as well.)
• The tabbed area at the bottom contains a set of tabs whose information you can hide or display as needed. In addition, the P+, P-, Px, T+, and T- buttons within this area allow you to change the Process Window’s context by moving to another process or thread.
The Action Points Tab with the Tabs Pane shows the list of breakpoints, eval points, and watchpoints for the process.
The Threads Tab shows each thread and information about the thread. Selecting a process switches the context to that thread.
The Processes/Ranks tab, if present, displays a grid of all of your program's processes. The grid’s elements show process status and indicate the selected group. Selecting a process switches the context to the first thread in that process.
The Processes/Ranks Tab was displayed by default in previous versions of TotalView, but now it is off by default. This is because it can significantly affect performance, particularly for large, massively parallel applications. The tab can be turned back on with the command line switch ‑processgrid and/or by setting TV::GUI::process_grid_wanted to true in the .tvdrc file. If you enable this tab in the .tvdrc file, you can disable it for a particular session with the ‑noprocessgrid command line switch.