Technical Notes |
|
The Model Debug Messages feature records activity of your Verastream model interacting with the host application, providing the detail that is sometimes necessary to diagnose and repair a malfunctioning model. This feature is particularly helpful for model designers working with VT (UNIX or OpenVMS) or HP hosts, where synchronization and related timeout issues are more common. This technical note describes how to use the model debug messages feature.
This technical note is organized into the following sections:
There are two ways to record model debug messages:
Design Tool: Model debug messages recording is always enabled for models you open in Design Tool.
Session Server: The Session Server can be configured to record model debug messages at runtime. (See Technical Note 10066 for details.) This feature is designed to minimize performance impact on the server. The recorded .vmr files can be later opened in Design Tool for analysis.
To open the Model Debug Messages dialog box in Design Tool, click Debug > Model Debug Messages. Alternatively, you can press Ctrl+Alt+M to open the Model Debug Messages dialog box.
To open a model debug messages .vmr file previously saved in Design Tool or recorded by a Session Server, do one of the following:
Note the following:
The Model Debug Messages dialog box displays a message list on the left, and message details on the right.
See Figure 1 below for a sample model debug message list. Use the following toolbar buttons to manipulate the messages list:
Display all messages.
Display only datastream messages.
This option displays only messages that relate to the terminal exchanging data with the host, such as transmit, receive, and data processing messages. This option also displays entity arrival and departure, operation start and end, and errors associated with the datastream messages.
Display relative time for descendants (toggle option).
By default, descendant messages associated with an action such as navigating to another entity are displayed with the time of the descendant message. Click this option to show time that elapsed relative to the action's start. This option helps identify abnormal delays associated with specific messages.
Find a message.
Click this option and type in a string to locate a specific message. You can also use the Find Message dialog box to find other occurrences of the messages, or to find messages of the same type as the selected message.
Find next error.
Click this button to locate the messages that are tagged as errors in the model debug messages list.
Clear all messages. (Actions that are in progress will not be cleared.)
Use this option when you are debugging a development version of a model and want to see the model's behavior after making some changes. You can save the previous collection of model debug messages before you use this option.
If you have opened an additional model debug message .vmr file, click this button to close the file. (The Current Model tab cannot be closed.)
The right panel of the Model Debug Messages dialog box shows the details of the message selected on the left. Depending on what type of message is selected, the right panel will show one or more of the following:
When a datastream message is selected, the datastream panel provides the following functionality:
You can copy text from this panel to the clipboard by using the right-click menu or Ctrl+C keystroke. This is useful to paste into a WaitForCommString command (in the Operation Edit dialog box, or in the Host Event Edit dialog box after selecting Host Communication String event) to resolve synchronization issues (see also Technical Note 10023).
You can type a string into the text box at the bottom of the datastream panel. All instances of that string are immediately highlighted in the datastream.
If your model does not reach an expected entity or cursor location, review the model debug messages. The example below shows a sequence on a VT host for a PageDown operation.
The final message, indicating unexpected bytes received from the host, is a strong indicator of a synchronization problem with the host. By reviewing the messages preceding this message, you can narrow down the source of the problem.
The highlighted message, "Operation AddressBook.PageDown arrived at AddressBook (primary)" has the associated ending snapshot on the lower-right panel:
Figure 2: Ending SnapshotWith a PageDown operation, a full screen of data should have been processed, but the action and the associated snapshot shows only a subset of the host screen (with a gray background) was actually received.
To ensure that all of the expected data is processed before proceeding, you can add a WaitForCommString command to the operation. Use the Suggest Escape Sequence button as described in Datastream Panel section above.
Note: There may be cases where a synchronization issue does not produce a message that unexpected bytes were received from the host, especially when running on the server. It is a good idea to look for partial operation snapshots similar to the one above whenever the model does not reach an expected entity or cursor location.