6.6   Object Browsers

The Show box (in the middle of the main browser window) gives you access to the browser's specialized object displays. Type either the name or the ID of a system object in the text-entry field to the left of this panel. Then press the Show button (or simply press the ENTER key) to bring up a browser for that particular object.

Another way to bring up the specialized browser displays is to click on the name of an object in the module browser (6.7 The Module Browser). If the object is a recognized system object, the browser for it is displayed just as if you had copied the name to the Show box.

For example, Figure 6-3 shows the Show box filled in with a request to display a browser for an object called graphSem:

To dismiss specialized object browsers, use the window manager's controls.

6.6.1   The Task Browser

To see more detailed information about a particular task, click on any browser window displaying the task name or task ID. For example, you can click on any task's summary line in the main target browser. The browser displays a window for that task, similar to Figure 6-4.

The task name appears on the title bar, to help you observe multiple tasks side by side. At the top of the task browser you can see global task attributes, and information about stack allocation and usage. The last major region shows the hardware registers for this task; their precise organization and contents depends on your target architecture. As usual, a scrollbar is displayed if more room is needed.

Notice the folder icons; the lines they mark categorize the task information. You can hide any information that is not of interest to you by clicking on any open folder, or expose such hidden information by clicking on any closed folder. Figure 6-5 shows another task browser running on the same target architecture, but with most of the hardware registers hidden.

Task-browser windows close automatically when the corresponding tasks are deleted.

6.6.2   The Semaphore Browser

To inspect a semaphore, enter either its name or its semaphore ID in the main target browser's Show box. A specialized semaphore browser appears, similar to the one shown in Figure 6-6. The semaphore browser displays both information about the semaphore itself (under the heading Attributes), and the complete queue of tasks blocked on that semaphore, under the heading Blocked Tasks. The title bar shows the semaphore ID, to help you distinguish browser displays for multiple semaphores.

Figure 6-6 shows a binary semaphore with one blocked task in its queue. As in other browser windows, you can click on the folders to control detail. To start a browser for any queued task, click on the task name or ID; both are displayed for each task.

POSIX semaphores have a somewhat different collection of attributes, and the browser display for a POSIX semaphore reflects those differences. Figure 6-7 shows an example of a browser display for a POSIX semaphore. Similarly, the semaphore browser adapts to shared-memory semaphores; Figure 6-8 exhibits that semaphore display.

Semaphore-browser windows are closed automatically when the corresponding semaphore is deleted.

6.6.3   The Message-Queue Browser

To inspect a message queue, enter its name or message-queue ID in the main target browser's Show box. A message-queue browser like the one in Figure 6-9 is displayed.

  

As well as displaying the attributes of the message queue, the message-queue browser shows three queues. Receivers Blocked shows all tasks waiting for messages from the message queue. Senders Blocked shows all tasks waiting for space to become available to place a message on the message queue. Messages Queued shows the address and length of each message currently on the message queue. As shown in Figure 6-10, shared-memory message queues have a very similar display format (differing only in the title bar).

Just as for semaphores, the message-queue browser also has a POSIX-attribute version (not shown).

If a message queue contains longer messages, you can resize the browser window to exhibit as much of the message as is convenient. Figure 6-11 shows a shared-memory message queue in a display widened for this purpose.

Message-queue browser windows are closed automatically when the corresponding message queue is deleted.

6.6.4   The Memory-Partition Browser

Just as is the case for all other specialized browser windows, the memory-partition browser comes up when the browser recognizes a memory partition ID (or a variable name containing one) entered in the Show box. Figure 6-12 shows memSysPartId, the VxWorks system memory partition.

By default the memory-partition browser displays the following:

As for other object browsers, you can control the level of detail visible by clicking on the folder icons beside each heading.

6.6.5   The Watchdog Browser

When the Tornado browser recognizes a watchdog-timer ID (or a variable containing one) in the Show box, it displays a window like those shown in Figure 6-13.

Before you start a timer, the display resembles the one on the left of Figure 6-13; only the state field is particularly meaningful. After the timer starts counting, however, you can see the number of ticks remaining, the address of the routine to be executed when the timer expires, and the address of its parameter.

6.6.6   The Class Browser

VxWorks kernel objects are implemented as related classes: collections of objects with similar properties. Each class has an identifier in the run-time; the symbol names for these identifiers end with the string ClassId, making them easy to recognize. When you enter a class identifier in the Show box, the browser displays a window with overall information about the objects in that class. For example, Figure 6-14 shows the display for semClassId (the semaphore class).

You can get a list of the class identifiers in your run-time by executing the following in a shell window:

-> lkup "ClassId"