Process Information

Updated: April 19, 2023

The Process Information view provides runtime details about processes and threads. For this view, information is shown for each process selected in the Target Navigator.

Individual panes within the view present thread state information, environment variables, and user and group IDs for processes, as described below. This view is handy for monitoring performance of threads, detecting deadlock, and verifying the proper priorities of threads.

Screenshot of Process Information view that shows thread details, environment variables, and process properties for two processes

Thread Details

This top pane displays thread details in a table. For each process, its binary name and PID is given in one row and its threads and their properties are listed in the rows underneath. You can toggle the display of a process's threads by clicking the arrowhead next to its name. This lets you filter the table to see only some threads. If you don't want to see any process rows, click the dropdown button (Icon: Dropdown button) in the upper right corner of the view, then click Tree View, to deselect the grouping by process feature.

By default, the following columns are shown:
  • Thread Name (ID)
  • Priority Name
  • State
  • Blocked on
  • Stack
  • CPU Time
  • CPU Time Delta

You can sort the thread list by any displayed metric, by clicking the corresponding column header. To easily spot changed values, click the highlight button (Icon: Highlight button) in the upper right toolbar of the view. The view then colors in the cells containing any values that changed since the last update. You can change the highlight color in the System Information preferences, by selecting Window > Preferences > General > Appearance > Colors and Fonts > System Information > Highlight color.

You can customize which columns are shown by clicking Configure from the dropdown menu. This action opens a popup window that lets you choose which thread details are shown and in which order they're listed in the table (from left to right):

Screenshot of popup window that shows the available thread fields on the left, buttons for adding, removing, and changing the display order of the fields in the middle, and the selected fields on the right

If you right-click a process row in the table, you see menu options for interacting with processes. These are the same options shown in the Target Navigator menu. If you right-click a thread row, you see similar options, except that you can't slay a thread or deliver a signal to it. Also, in addition to setting the priority and the inherited and non-inherited CPU affinities, you can set the thread name.

Environment Variables

The environment variable settings for each process are listed in this pane. For information about environment variables used on QNX targets, see the Commonly Used Environment Variables section in the Utilities Reference.

Process Properties

This bottom pane lists each process's command line, including arguments, and its real and effective user and group IDs.

The arguments listed are the ones used to start a process, which means they're what was passed to the executable binary, not necessarily what you might have entered on the command line. For example, if you entered wc *.c, the pane might show wc cursor.c io.c my.c phditto.c swaprelay.c because the shell expands the *.c token before launching the program.

The user and group IDs determine which permissions are used for a process. Suppose you start a process as root but use seteuid() and setegid() to run the program as the user jsmith. The program then runs with the permissions of jsmith. By default, all programs launched from the IDE run as root.