Chapter 3. IRIX IM Analyzer Reference

This chapter describes in detail the function of each window, menu, and display in the IRIX IM Analyzer's graphical user interface (GUI).

This chapter contains the following sections:

Global Objects

Though the IRIX IM Analyzer is made up of several different examiner windows, a number of objects remain constant throughout window changes.

Admin Menu

The Admin menu (see Figure 3-1) offers the following menu selections:

Figure 3-1. Admin Menu


“Active” toggle 


Activates the current window in a set of cloned windows. In the current release, this toggle is always active.

“Clone” 

Creates a clone of the current window. This function is not supported in the current release, and the option is grayed out.

“Save As Text...” 


Launches the “Save Text” dialog (see Figure 3-2). This dialog allows you to save your current session as text in a file you designate.

“Close”  

Closes the current window.

Figure 3-2. “Save Text” Dialog


Examine Menu

The Examine menu (see Figure 3-3) offers the following menu selections:

Figure 3-3. Examine Menu


“Selection” 

Selects the currently highlighted object for examination.

“Widget” 

Uses the current selection as input to the widget examiner, then opens that examiner (see “Widget Examiner” for information).

“Widget Tree” 

Switches the window view to the widget tree examiner (see “Tree Examiner” for information).

“Widget Class” 

Switches the window view to the widget class examiner (see “Widget Class Examiner” for information).

“Window” 

Switches the window view to the window examiner (see “Window Examiner” for information).

“X Event” 

Switches the window view to the X Event examiner (see “Event Examiner” for information).

“X Graphics Context” 


Switches the window view to the X graphics context examiner (see “Graphics Context Examiner” for information).

“X Pixmap” 

Switches the window view to the X pixmap examiner (see “Pixmap Examiner” for information).

Examiner Tabs

In addition to access through the Examine menu, each examiner can be accessed through a tab at the bottom of each view (see Figure 3-4).

Figure 3-4. Examiner Tabs


When first launched, the IRIX IM Analyzer has only four tabs: Breakpoints, Trace, Widget, and Tree. As you use new examiners through the Examine menu, new tabs are added for the new examiners. Any of these new tabs may be deleted at any time by selecting the tab, clicking the right mouse button, and then selecting “Remove Examiner” (see Figure 3-5). The initial four tabs may not be removed.

Figure 3-5. Removing Tabs


Return Button

The “Widget” and “Name” text fields both have return buttons (see Figure 3-6) just to their right. Clicking these buttons causes the IRIX IM Analyzer to respond exactly as if you had pressed Return on your keyboard.

Breakpoints Examiner

The Breakpoints examiner is not really an examiner, but a control area where you can set widget-level breakpoints. The breakpoints examiner is divided into three areas (see Figure 3-6):

  • The widget specification area, which contains the same information as that in the Widget examiner. You can select a widget address, name, or class in this area, as well as move to the widgets parents or children, or select a widget in the application. In cases where the breakpoint type does not apply to widgets (for example, input-handler breakpoints), this area is blank.

  • The parameter specification area, the contents of which vary according to the type of breakpoint you are setting. For example, for Callback breakpoints, this area contains the callback name and client data; for event-handler breakpoints, it contains the event type and the client data, and so on.

  • The breakpoint area, which contains the breakpoint name, a search field, and the Add, Modify, Delete, and Step To buttons.

    Figure 3-6. Breakpoints Examiner


The control area has eight different breakpoint types that it can examine. These types are set through the “Breakpoint Type” option button (see Figure 3-7). The options for the “Breakpoint Type” option button are described below:

Figure 3-7. “Breakpoint Type” Option Button


Callback Breakpoints Examiner

When the “Callback” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-8.

Figure 3-8. Callback Breakpoints Examiner


The Callback Breakpoints examiner contains the following items:

“Widget” text field 


Allows you to choose a widget to examine by entering the widget address.

“Name” text field 


Allows you to choose a widget to examine by entering the widget name.

“Class” text field 


Allows you to choose a widget to examine by entering the widget's class. Leave the field blank or enter Any to select all widgets.

Parent button 

Allows you to move the parent of the currently selected widget.

Previous button 

Moves you to the previously selected widget.

Children... button 


Shows you the widget's children (it is grayed out if the selected widget cannot have children).

Select... button 

Allows you to select the widget in the target process.

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Callback Name” text field 


Allows you to set the name of the callback for the breakpoint.

“Client_Data” text field 


Allows you to pass in and get back pointer values for the Client_Data.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

Event-Handler Breakpoints Examiner

When the “Event-Handler” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-9.

Figure 3-9. Event-Handler Breakpoints Examiner


The Event-Handler Breakpoints examiner contains the following items:

“Widget” text field 


Allows you to choose a widget to examine by entering the widget address.

“Name” text field 


Allows you to choose a widget to examine by entering the widget name.

“Class” text field 


Allows you to choose a widget to examine by entering the widget's class. Leave the field blank or enter Any to select all widgets.

Parent button 

Allows you to move the parent of the currently selected widget.

Previous button 

Moves you to the previously selected widget.

Children... button 


Shows you the widget's children (it is grayed out if the selected widget cannot have children).

Select... button 

Allows you to select the widget in the target process.

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Event Type” option button 


Takes the place of the “Callback Name” text field in the Callback Breakpoints examiner. Allows you to set the event type for a given breakpoint. The types available are shown in Figure 3-10.

Figure 3-10. Event Type Option Button


“Client_Data” text field 


Allows you to pass in and get back pointer values for the Client_Data.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

Resource-Change Breakpoints Examiner

When the “Resource-Change” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-11.

Figure 3-11. Resource-Change Breakpoints Examiner


The Resource-Change Breakpoints examiner contains the following items:

“Widget” text field 


Allows you to choose a widget to examine by entering the widget address.

“Name” text field 


Allows you to choose a widget to examine by entering the widget name.

“Class” text field 


Allows you to choose a widget to examine by entering the widget's class. Leave the field blank or enter Any to select all widgets.

Parent button 

Allows you to move the parent of the currently selected widget.

Previous button 

Moves you to the previously selected widget.

Children... button 


Shows you the widget's children (it is grayed out if the selected widget cannot have children).

Select... button 

Allows you to select the widget in the target process.

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Resource Name” text field 


Takes the place of the “Callback Name” text field. Allows you to set the resource name for the breakpoint.

“Resource Value” text field 


Takes the place of the “Client Data” text field. Allows you to set the resource value for the breakpoint.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

Timeout-Procedure Breakpoints Examiner

When the “Timeout Procedure” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-12.

Figure 3-12. Timeout-Procedure Breakpoints Examiner


The Resource-Change Breakpoints examiner contains the following items:

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Client_Data” text field 


Allows you to pass in and get back pointer values for the Client_Data.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

Input-Handler Breakpoints Examiner

When the “Input-Handler” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-13.

Figure 3-13. Input-Handler Breakpoints Examiner


The Input-Handler Breakpoints examiner contains the following items:

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Client_Data” text field 


Allows you to pass in and get back pointer values for the Client_Data.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

State-Change Breakpoints Examiner

When the “State-Change” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-14.

Figure 3-14. State-Change Breakpoints Examiner


The Resource-Change Breakpoints examiner contains the following items:

“Widget” text field 


Allows you to choose a widget to examine by entering the widget address.

“Name” text field 


Allows you to choose a widget to examine by entering the widget name.

“Class” text field 


Allows you to choose a widget to examine by entering the widget's class. Leave the field blank or enter Any to select all widgets.

Parent button 

Allows you to move the parent of the currently selected widget.

Previous button 

Moves you to the previously selected widget.

Children... button 


Shows you the widget's children (it is grayed out if the selected widget cannot have children).

Select... button 

Allows you to select the widget in the target process.

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“State Type” option button 


Takes the place of the “Callback Name” text field in the Callback Breakpoints examiner. Allows you to set the event type for a given breakpoint. The types available are as follows (see Figure 3-15):

  • Created

  • Destroyed

  • Managed

  • Realized

  • Unmanaged

  • Any

    Figure 3-15. State Type Option Button


“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

X-Event Breakpoints Examiner

When you select the “X-Event” option of the “Breakpoint Type” option button in the Breakpoint Examiner, the examiner appears as shown in Figure 3-16.

Figure 3-16. X-Event Breakpoints Examiner


The X-Event Breakpoints examiner contains the following items:

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

“Event Type” option button 


Takes the place of the “Callback Name” text field in the Callback Breakpoints examiner. Allows you to set the event type for a given breakpoint. The types available are shown in Figure 3-10.

Figure 3-17. Event Type Option Button


“Window ID” text field 


Takes the place of the “Client_Data” text field. Allows you to set the Window ID value for the breakpoint.

“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

X-Request Breakpoints Examiner

When the “X-Request” option of the “Breakpoint Type” option button in the Breakpoint Examiner is selected, the examiner appears as shown in Figure 3-18.

Figure 3-18. X-Request Breakpoints Examiner


The X-Request Breakpoints examiner contains the following items:

“Breakpoint Type” option button 


Allows you to select the type of breakpoint you wish to set.

Clear button 

Clears all the current breakpoint selections and text fields.

Request Type button 


Launches the “Request Type Selection” dialog (see figure). This dialog allows you to select the type of X-Request used for your breakpoint. The information displayed is in outline form; selecting a given item selects all its subitems. For example, if you select Window-Category, CreateWindow, ChangeWindowAttributes, GetWindowAttributes, and so on are also selected.

Figure 3-19. “Request Type Selection” Dialog


“Search” text field 


Allows you to perform a text search through your breakpoints.

Add button 

Allows you to add a new breakpoint.

Modify button 

Allows you to change the selected breakpoint's settings.

Delete button 

Deletes the selected breakpoint.

Step To button 

Allows you to step to the next condition. Step To creates a temporary breakpoint, resumes the process, and waits until the process stops. This temporary breakpoint acts exactly like an ordinary breakpoint, save that the Step To button automatically resumes the process and puts up a busy cursor until the condition becomes true.

Trace Examiner

The Trace examiner (see Figure 3-20) is a control area where you can trace the execution of your application and collect various forms of data. The following data is collected:

  • X Server Events

  • X Server Requests

  • Widget Event Dispatch Information

  • Widget Resource Changes (through XtSetValues)

  • Widget State Changes (create, destroy, manage, realize, unmanage)

  • Xt Callbacks (widget, event handler, work proc, timeout, input, signal)

    Figure 3-20. Trace Examiner


The Trace examiner contains the following items:

“Collect Trace” toggle 


Allows you to turn the tracing on and off.

“File” text field 

Allows you to select the filename for the trace. If no file is selected, a default filename for the trace is chosen.

“Search” text field 


Allows you to perform an incremental, textural search for the trace list.

Filter... button 

Launches a dialog that allows you to select the trace entry types you want displayed in the list.

Clear File button 


Erases the trace file. Any subsequent trace information goes to the beginning of the file.

Widget Examiner

The Widget examiner (see Figure 3-21) displays the internal Xt widget structure, as well as the Xt inheritance implemenation using nested C structs.

Figure 3-21. Widget Examiner


The Widget examiner contains the following items:

“Widget” text field 


Allows you to choose a widget to examine by entering the widget address.

“Name” text field 


Allows you to choose a widget to examine by entering the widget name.

Parent button 

Allows you to move the parent of the currently selected widget.

Previous button 

Moves you to the previously selected widget.

Children... button 


Shows you the widget's children. (It is grayed out if the selected widget cannot have children.)

Select... button 

Allows you to select the widget in the target process.

Tree Examiner

The Tree examiner (see Figure 3-22) displays the widget hierarchy.

Figure 3-22. Tree Examiner


You may double-click a node to view that widget in the Widget examiner. Use the option menu in the bottom-right corner to switch the display among widget names, class names, and IDs.

If the Tree examiner is currently selected, it will not automatically fetch the current widget tree each time the process stops. To force retrieval of the widget tree, select another examiner and then go back to the Tree examiner. Or, click on the Tree tab.

You may display the tree according to widget name, class, or ID value. You can select this by choosing the appropriate option from the widget view type option button (see figure) in the lower-right portion of the examiner.

Figure 3-23. Widget View Type Option Button


Callback Examiner

The Callback examiner (see Figure 3-24) automatically appears when the process is stopped somewhere in a callback. It first displays the callstack frame for the callback function. Next, it displays information about the widget in the callback. Finally, it displays the proper callback structure contained in the call_data argument to the callback procedure, based on the widget type and the callback name.

Figure 3-24. Callback Examiner


Window Examiner

The Window examiner (see Figure 3-25) displays window attributes for an X window. These are the attributes returned by XGetWindowAttributes, with decoding of the Visual structure and enums and masks decoded. Additionally, the Window examiner shows the parent and children window IDs.

Figure 3-25. Window Examiner


The Window examiner contains the “Window” text field, which displays the address of the window that is being examined. You may change to a different window by entering a new address and pressing the ENTER key.

Event Examiner

The Event examiner (see Figure 3-26) displays the event structure for an XEvent pointer. The proper XEvent union member is used, and enums and masks are decoded.

Figure 3-26. Event Examiner


The Event examiner contains the “X Event” text field, which displays the address of the X event that is being examined. You may change to a different X event by entering a new address and pressing the ENTER key.

Graphics Context Examiner

The Graphics Context examiner (see Figure 3-27) displays the X graphics context attributes that are cached by Xlib in the form of an XGCValues structure. Enums and masks are decoded.

Figure 3-27. Graphics Context Examiner


The Graphics Context examiner contains the “GC” text field, which displays the address of the graphics context that is being examined. You may change to a different context by entering a new address and pressing the ENTER key.

Pixmap Examiner

The Pixmap examiner (see Figure 3-28) displays basic attributes of an X pixmap, like size and depth. It also attempts to provide an ASCII display of small pixmaps, using the units digit of the pixel values.

Figure 3-28. Pixmap Examiner


The Pixmap examiner contains the “Pixmap” text field, which displays the address of the pixmap that is being examined. You may change to a different pixmap by entering a new address and pressing the ENTER key.

Widget Class Examiner

The Widget Class examiner (see Figure 3-29) displays the Xt widget class structure, as well as the Xt inheritance implementation using nested C structs.

Figure 3-29. Widget Class Examiner


The Widget Class examiner contains the “W Class” text field, which displays the address of the widget class that is being examined. You may change to a different widget class by entering a new address and pressing the ENTER key.