Sirius Software, Inc.
Click to restore navigation bars  


Janus Debugger and Sirius Debugger

Introduction

Sirius Software offers two full-featured debuggers for analysis and maintenance of Model 204 User Language applications. The Janus Debugger is a tool designed for software developers who create and maintain Janus Web Server applications. The Sirius Debugger is designed to debug applications that use a 3270 terminal stream to interact with the user or applications that use a Batch2 stream.

Both debuggers use the same Windows GUI client, so you need to learn only one user interface.

The Janus and Sirius Debuggers provide these typical debugging capabilities:

In addition, the Debuggers provide an assortment of special features, including:

Janus Debugger

The Janus Debugger is designed to debug Janus Web Server applications. With software installed on the Model 204 Online as well as on a workstation with a browser that can access a proxy server, the Debugger lets you examine in statement-by-statement detail the User Language code that the Web Server executes.

When a Janus Web Server is about to run a request on your behalf, and you are running under the Janus Debugger:

  1. Server source code is sent to the Debugger Client deployed on a workstation.
  2. The code is shown, navigable to top and bottom, with search features available.
  3. Execution is paused, awaiting the control of the Debugger.

Although limited to Janus Web Server applications (for example, if a program does a 3270-screen read, the Debugger session terminates), the programs you debug may be, or contain, the following:

The Sirius Debugger

The Sirius Debugger follows execution of code requested by terminal and Batch2 requests. It does not process HTTP Web Server requests (though it can debug HTTP client applications that use the Janus Sockets HTTP Helper).

When an application is about to run a Model 204 3270-terminal or Batch2 request,

  1. Server source code is sent to the Debugger Client deployed on a workstation.
  2. The code is shown, navigable to top and bottom, with search features available.
  3. Execution is paused, awaiting the control of the Debugger.

Although limited to 3270 or batch stream applications (unless you also license the Janus Debugger), the programs you debug may be, or contain, the following:

The GUI

The following image of the Debugger Client (debugging a Janus Web Server program) has numbered labels that point to the principal areas of the Debugger and that are linked to descriptive text below the image:

Client GUI

1 — The tabbed pages

The main display window is used by any of several tabbed pages (the Web Buffer tab is not present for Sirius Debugger sessions; Daemon tabs display dynamically if the program invokes daemons):

2 — The lower windows

3 — The Status area

The Status area displays messages that describe the state of the Debugger after each operation you invoke.

4 — The page navigation buttons

The Top, Bottom, Search, and Search Next buttons provide navigation on the currently active tab. You can rearrange the order of the buttons and can even replace them with different functionality.

5 — The program execution buttons

Like the page navigation buttons, the order and functionality of these buttons is user-configurable.

6 — The tracing buttons

7 — The value displaying buttons

8 — The menu bar

The Debugger Client has multiple menus; many of the menu options duplicate the actions of default Client buttons and keyboard shortcuts, and most menu options are associated with Client commands.

Configurability

Preferences

In addition to a configuration file you edit at the time of product installation to provide Online and workstation TCP port numbers, the Debugger Client has a number of configuration options that are dynamically settable from the File > Preferences menu:

After some experience using the Debugger, you have further customization options:


Tracing options

The Debugger provides several options for tracing the effects of your program execution. You run part or all of your program, and the Debugger collects tracing data in a separate page, the Execution Trace tab.

The simplest form of tracing starts from the current execution point and notes which lines were executed. You click the Trace button below the main window, the program executes, and a list of the statements executed is displayed in the Execution Trace tab.

Clicking the Trace Changes button invokes tracing that lists all statements that modify a selected variable and specifies the new value that was assigned to the variable:

trace changes

You can also have the Debugger stop program execution whenever the value of a variable changes. Once you click the Run to Change button, the statement that modifies the specified variable, as well as the new variable value, are shown in the Execution Trace tab.

Finally, a variation of the Run To Change feature lets you continue program execution unless or until a selected variable's value becomes equal to a value you specify. This lets you verify whether a variable ever becomes a certain value.

An XML example

Applications using Janus SOAP XML document objects (XmlDocs) are becoming increasingly common due to the prominence of Web Services. The Janus and Sirius Debuggers make it easy to display the contents of your XML document objects, and thus let you examine an XmlDoc as it is being built by your application code.

Ordinarily in the Janus SOAP XML API, you can inspect the contents of an XmlDoc only if it is serialized by an XML document serializing method like Serial, WebSend, Xml, or Print. As a result, if you want to know the contents of an XmlDoc sometime before the code contains a statement that serializes the XmlDoc, you have to intervene. If you were editing your own code by hand, you might simply insert Print method statements to view the contents. The Debugger provides a solution that avoids any modification of your code.

Say you are debugging request code in which a statement like the following is executed:

%x:loadxml('<a>Hello<b>moe</b><c>larry</c></a>')

Instead of directing the Debugger to display the value of %x — the way you display the value of other variables in the GUI — you specify the value %x:serial. When you click the Value button, the Debugger Client displays in a separate window the result of the XmlDoc Serial method applied to the object variable %x:

xml:serial

For your convenience, the Debugger formats the return value with carriage-return/line-feed character sequences and three-blank character sequences for the indent of nested elements. The XML documents you are building or receiving (say, via an HTTP Helper Web Services client application) are readily visualized, thus easier to debug.

Object expansion

With version 7.1 or higher of the Sirius Mods, you can display for a given object variable the names and values of the Variables (public and private) defined for its class.

This feature is supported for Janus SOAP system classes and for user-defined classes. For any class, the display does not include class methods (Functions, Subroutines, Properties, or Constructors).

expand obj

For example, for an object variable whose value you are watching in the Debugger Watch Window, you simply right-click the variable and the Debugger enables an Expand Object option (as shown to the right):

If the current object variable value is other than Not-null, the Expand Object option is not enabled.

Once you select the Expand Object option, a Value window opens, displaying the names and current values of the Variables in the class (as shown below):

class vars

Requirements

Both the Janus Debugger and the Sirius Debugger support Model 204 V5R1 and higher on the MVS, VM, and VSE operating systems.

Version 6.8 or higher of the Sirius Mods is required.

The Debugger Client application runs only on Windows workstations. The Janus Debugger requires a web browser that supports proxy servers.

For more information, refer to the Janus/Sirius Debugger User's Guide.

Click to restore navigation bars © 2000, 2003 Sirius Software, Inc.