Category:Debugger Home: Difference between revisions

From m204wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is a master category and page for all things Debugger (Janus/TN3270 Sirius Debugger). '''It is currently under construction''', so it is subject to changes and formatting.
This is a master category and page for all things Debugger (Janus/TN3270 Sirius Debugger).


=== About the Debuggers ===
=== About the Debuggers ===
<span class="f_Para">The </span><span class="f_Product">Janus Debugger</span><span class="f_Para"> is a tool designed for developers who create and maintain </span><span class="f_Product">Janus Web Server</span><span class="f_Para"> applications. With software installed in the </span><span class="f_Product">Model 204</span><span class="f_Para"> Online, as well as on a workstation with a browser that can access the Web Server, the Janus Debugger lets you examine in statement by statement detail the SOUL code that the Web Server executes. </span>
<span class="f_Para">The </span><var>Janus Debugger</var><span class="f_Para"> is a tool designed for developers who create and maintain </span><var>Janus Web Server</var><span class="f_Para"> applications. With software installed in the </span><var>Model 204</var><span class="f_Para"> Online, as well as on a workstation with a browser that can access the Web Server, the Janus Debugger lets you examine in statement by statement detail the SOUL code that the Web Server executes. </span>


<span class="f_Para">The </span><span class="f_Product">TN3270 Debugger</span><span class="f_Para"> is designed for developers who create and maintain </span><span class="f_Product">Model 204</span><span class="f_Para"> 3270 and Batch2 applications. With software installed on the </span><span class="f_Product">Model 204</span><span class="f_Para"> Online, it uses  the same Debugger Client as the </span><span class="f_Product">Janus Debugger</span><span class="f_Para">, letting you examine 3270 and Batch2 applications. </span>
<span class="f_Para">The </span><var>TN3270 Debugger</var><span class="f_Para"> is designed for developers who create and maintain </span><var>Model 204</var><span class="f_Para"> 3270 and Batch2 applications. With software installed on the </span><var>Model 204</var><span class="f_Para"> Online, it uses the same Debugger Client as the </span><var>Janus Debugger</var><span class="f_Para">, letting you examine 3270 and Batch2 applications. </span>


<span class="f_Para">An instance of the Debugger Client can be debugging a web application (acting as the </span><span class="f_Product">Janus Debugger</span><span class="f_Para">), or it can be debugging a 3270 or Batch2 application (acting as the </span><span class="f_Product">TN3270 Debugger</span><span class="f_Para">). At any given time, it may only be debugging one type of application. The title bar of the Debugger Client indicates the application type.</span>
<span class="f_Para">An instance of the Debugger Client can be debugging a web application (acting as the </span><var>Janus Debugger</var><span class="f_Para">), or it can be debugging a 3270 or Batch2 application (acting as the </span><var>TN3270 Debugger</var><span class="f_Para">). At any given time, it may only be debugging one type of application. The title bar of the Debugger Client indicates the application type.</span>
<!-- This is a comment --
<!-- This is a comment --
These subsections continue the overview of the Debuggers:
These subsections continue the overview of the Debuggers:
Line 14: Line 14:
: [[Category:Debugger_Home#The_basic_operation|Versions and builds]]
: [[Category:Debugger_Home#The_basic_operation|Versions and builds]]
: [[Category:Debugger_Home#The_basic_operation|System requirements]]  
: [[Category:Debugger_Home#The_basic_operation|System requirements]]  
: [[Category:Debugger_Home#The_basic_operation|Known limitations]] >
: [[Category:Debugger_Home#The_basic_operation|Known limitations]] -->
<!-- This is a comment -->
 
==== The basic operation ====
==== The basic operation ====
When you are running under the ''Janus Debugger'', and ''Janus Web Server'' is about to run a request on your behalf, or you are running under the ''TN3270 Debugger'', and you run a 3270 or Batch2 request:
When you are running under the <var>Janus Debugger</var>, and <var>Janus Web Server</var> is about to run a request on your behalf, or you are running under the <var>TN3270 Debugger</var>, and you run a 3270 or Batch2 request:


# Request source code is sent to the Debugger Client deployed on a workstation.
# Request source code is sent to the Debugger Client deployed on a workstation.
Line 34: Line 34:


In addition, the Debuggers provide:
In addition, the Debuggers provide:
*A [[using_debugger_gui.html|compact]] Graphical User Interface with user configurable buttons and hot keys
*A [[Getting Acquainted with the Client GUI|compact]] Graphical User Interface with user configurable buttons and hot keys
*Views of the Model 204 audit trail and code executed by daemons  
*Views of the Model 204 audit trail and code executed by daemons  
*Tracing of statements that modify variables in executed code lines, or tracing until a variable becomes a certain value
*Tracing of statements that modify variables in executed code lines, or tracing until a variable becomes a certain value
Line 47: Line 47:
==== The architecture ====
==== The architecture ====


The following figure displays the principal components in a ''Janus Debugger'' configuration:
The following figure displays the principal components in a <var>Janus Debugger</var> configuration:


[[File:debarchjdb_zoom42.gif|422x209px|debarchJDB]]<span class="f_Para">  </span>
[[File:debarchjdb_zoom42.gif|422x209px|debarchJDB]]<span class="f_Para">  </span>
Line 75: Line 75:
|-
|-
| '''Janus Web thread'''  
| '''Janus Web thread'''  
| <span class="f_Product">Janus Debugger </span><span class="f_DefListDD">only. </span>
| <var>Janus Debugger </var><span class="f_DefListDD">only. </span>
|-
|-
| '''3270/Batch2 thread'''
| '''3270/Batch2 thread'''
| <span class="f_Product">TN3270 Debugger</span><span class="f_DefListDD"> only. </span>
| <var>TN3270 Debugger</var><span class="f_DefListDD"> only. </span>
|-
|-
|
|
Line 96: Line 96:
(Windows GUI, written in VB.NET)
(Windows GUI, written in VB.NET)
|
|
<span class="f_DefListDD">The Debugger Client resides on the developer's workstation. It is a proxy server in a </span><span class="f_Product">Janus Debugger</span><span class="f_DefListDD"> session: the browser no longer directly connects to the Web Server, but instead it &quot;sends&quot; to and &quot;receives&quot; from the Client.</span>
<span class="f_DefListDD">The Debugger Client resides on the developer's workstation. It is a proxy server in a </span><var>Janus Debugger</var><span class="f_DefListDD"> session: the browser no longer directly connects to the Web Server, but instead it &quot;sends&quot; to and &quot;receives&quot; from the Client.</span>


<span class="f_DefListDD">The Client GUI lets you control the application and view variable values, source code, traces, and for </span><span class="f_Product">Janus Debugger</span><span class="f_DefListDD"> sessions, the web output buffer.</span>
<span class="f_DefListDD">The Client GUI lets you control the application and view variable values, source code, traces, and for </span><var>Janus Debugger</var><span class="f_DefListDD"> sessions, the web output buffer.</span>
|-
|-
| '''Web browser'''
| '''Web browser'''
| <span class="f_Product">Janus Debugger </span><span class="f_DefListDD">only. Any web browser that allows proxy servers.</span>
| <var>Janus Debugger </var><span class="f_DefListDD">only. Any web browser that allows proxy servers.</span>
|}
|}
</div>
</div>
==== Versions and builds  ====
==== Versions and builds  ====
Line 110: Line 108:


==== System requirements ====
==== System requirements ====
The [[online_configuration_track.html|Online Configuration]] section of this document specifies the requirements for ''Model 204'' product release levels, licenses, and maintenance, as well as Debugger product authorization. In addition are instructions for configuring a ''Model 204'' Online that hosts the Debugger, which include User</span><span class="f_ListNum1"> </span><span class="f_Para">0 parameter and TCP port definitions and increases in storage table and work area sizes for both of these:
The [[#Online Configuration|Online Configuration]] section of this document specifies the requirements for <var>Model 204</var> product release levels, licenses, and maintenance, as well as Debugger product authorization. In addition are instructions for configuring a <var>Model 204</var> Online that hosts the Debugger, which include User</span><span class="f_ListNum1"> </span><span class="f_Para">0 parameter and TCP port definitions and increases in storage table and work area sizes for both of these:
*The worker thread that services a debugging session  
*The worker thread that services a debugging session  
*The thread on which the program to be debugged is running  
*The thread on which the program to be debugged is running  
Line 116: Line 114:
==== Known limitations  ====
==== Known limitations  ====
The following are known limitations and issues concerning the Janus and TN3270 Debuggers:  
The following are known limitations and issues concerning the Janus and TN3270 Debuggers:  
*You may not use either Debugger for '''''DBCS data'''''.  
*You may not use either Debugger for '''DBCS data'''.  
*You may use the Janus Debugger on a '''''Janus Web Legacy Support''''' thread only if you also have a license for the TN3270 Debugger.  
*You may use the Janus Debugger on a '''Janus Web Legacy Support''' thread only if you also have a license for the TN3270 Debugger.  
*No '''''asynchronous daemon or $COMMBG requests''''' may be debugged. They are simply ignored by the Debugger (and they execute normally).
*No '''asynchronous daemon or $COMMBG requests''' may be debugged. They are simply ignored by the Debugger (and they execute normally).
*The client requires '''''Windows 7 or higher'''''.
*The client requires '''Windows 7 or higher'''
*Both the Execution Trace tab (output from one trace) and the Web Buffer tab have '''''5000 line capacities'''''. If the capacity is exceeded, the last 5000 lines are shown.
*Both the Execution Trace tab (output from one trace) and the Web Buffer tab have '''5000 line capacities'''. If the capacity is exceeded, the last 5000 lines are shown.
 
=== Check Prerequisites ===
Ensure you are running Version 7.5 or higher of Model 204.  You can verify this by issuing the <span style="font-family: 'Courier New',Courier,monospace;">VIEW VERSION</span> command at the Model 204 command prompt, for example:
 
<p class="syntax">
<span class="f_Syntax">VIEW VERSION                                  </span>
<span class="f_Syntax">VERSION   7.9.0A      Release of Model 204 </span></p>
 
=== Installation and Configuration ===
<span class="f_Para">This section describes how to install the </span><var>Janus Debugger</var><span class="f_Para">, the</span><var> TN3270 Debugger</var><span class="f_Para">, or both. Once you complete this installation, you can begin to use either or both products. </span>
 
<span class="f_Para">This section consists of two subsections of mostly cookbook-style directions. You should first complete the steps in the &quot;Online Configuration&quot; section, then complete  the &quot;Workstation Configuration&quot; section. </span>
 
<span class="f_Para">Most of the steps are to be performed whether you are installing one or both Debugger products, and exceptions are noted. </span>
 
<span class="f_Para">If you will be using a local editor (</span><var>Xtend</var><span class="f_Para"> or </span><var>UltraEdit</var><span class="f_Para">) with the Debugger, finish the Debugger installation first, then see [[Using a local editor|Using a local editor]]. </span>
 
<span class="f_Para">For information about setting up at your site a centralized distribution of updated Debugger Client replacement files, see [[Providing updated versions of the Debugger Client|Providing updated versions of the Debugger Client]]. </span>
 
=== Online Configuration ===
<span class="f_Para">This section shows how to prepare a </span><var>Model 204</var><span class="f_Para"> Online for use of the </span><var>Janus Debugger,</var><span class="f_Para"> the </span><var>TN3270 Debugger,</var><span class="f_Para"> or both. </span>
 
<span class="f_Para">The installation tasks require </span><var>Model 204</var><span class="f_Para"> system manager privileges. Also, since you must set at least one User 0 parameter, a cycle of the </span><var>Model 204</var><span class="f_Para"> Online will be required. </span>
 
<span class="f_Para">The Online configuration tasks are listed below. </span>
 
* [[Check Debugger Prerequisites|Check prerequisites]]
* [[Authorize the Debugger|Authorize the Debugger]]
* [[Set Model 204 system parameters|Set Model 204 system parameters]]
* [[Define and start the Debugger Server port|Define and start the Debugger Server port]]
* [[Define and start a client socket port (TN3270 Debugger only)|Define and start a client socket port (TN3270 Debugger only)]]
 
=== Workstation Configuration ===
<span class="f_Para">This section specifies how to prepare a workstation for use by the </span><var>Janus Debugger, TN3270 Debugger,</var><span class="f_Para"> or both. </span>
 
<span class="f_Para">These are the workstation configuration tasks: </span>
: [[Perform preliminary tasks|Perform preliminary tasks]] </span>
: [[Run, check, and verify the Client installation|Run, check, and verify the Client installation]]</span>
: [[Customize debuggerConfig file|Customize the debuggerConfig.xml file]]</span>
: [[Configure web browser (Janus Debugger only)|Configure the web browser (Janus Debugger only)]]</span>
: [[Test the end to end configuration|Test the end-to-end configuration]]</span>
 
=== Menu Bar ===
<span class="f_Para">The Debugger Client has multiple menus, each of which is described in the following subsections. Many of the menu options duplicate the actions of default Client buttons and keyboard shortcuts, and most menu options are associated with Client commands. </span>
 
[[File:menubar2_zoom90.gif|687x93px|menubar2]]
 
<span class="f_Para">If a hot key is mapped to a command that is associated with a menu option, the hot key is displayed in parentheses next to the menu option. </span>
: [[File menu options|The File menu options]] </span>
: [[Window menu options|The Window menu options]]</span>
: [[Search menu options|The Search menu options]]</span>
: [[Breakpoints menu options|The Breakpoints menu options]] </span>
: [[Execution menu options|The Execution menu options]] </span>
: [[Data Display menu options (Debugger)|The Data Display menu options]]</span>
: [[Error menu options|The Error menu options]]</span>
: [[Macros menu options|The Macros menu options]]</span>
: [[Help menu options|The Help menu options]]</span>
 
=== Performing Basic GUI tasks ===
<span class="f_Para">These sections describe how you perform basic operations using the Debugger:</span>
 
* [[Controlling the execution of program code|Controlling the execution of program code]]
* [[Viewing and modifying program elements|Viewing and modifying program elements]]
* [[Getting source file, audit trail, and web buffer information|Getting source file, audit trail, and web buffer information]]
* [[Tracing program execution|Tracing program execution]]
* [[Viewing programs that contain coding errors|Viewing programs that contain coding errors]]
* [[Debugging requests that spawn daemons|Debugging requests that spawn daemons]]
* [[Debugging Web Server persistent sessions|Debugging Web Server persistent sessions]]
* [[Debugging multiple Web Servers|Debugging multiple Web Servers]]
 
=== Using Debugger Macros ===
<span class="f_Para">A macro lets you execute one or more commands as a single unit of work to automate an often-repeated series of operations.  </span>
 
<span class="f_Para">Subsequent sections describe: </span>
 
*[[Creating and running a macro|Creating and running a macro]]
*[[Mapping a macro to a button or hot key|Mapping a macro to a button or hot key]]
*[[Passing a command argument to a macro|Passing a command argument to a macro]]
*[[Using the console and command line|Using the macro console and command line]]
*[[Using the Macro Autorun feature|Using the Macro Autorun feature]]
*[[Working with macro variables|Working with macro variables]]
*[[Working with Client functions (Debugger)|Working with Client functions]]
<!-- === &&Functions ===
<div class="showVisit">
<table class="wikitable">
<tr class="head"><th>&&Function</th><th>Description</th></tr> -->
<!-- ************************************************************** -->
<!-- Note that FUNSCHECK.WIKI depends on the format of the function name/description rows - *** SO DON'T MUCK WITH IT!!! *** -->
<!-- ************************************************************** -->
<!-- <tr><td>[[&&amDaemon]]</td><td>Returns a 1 if a Daemon tab contains the currently active code. Otherwise, the returned number is 0.</td></tr>
<tr><td>[[&&arg]]</td><td>Serves as a placeholder for a command argument ''within a macro'' (if used outside of a macro, an error is issued).</td></tr>
<tr><td>[[&&assertFailureCount]]</td><td>Returns a count of the number of times that the result of an [[Assert command|assert]] command is a Failure.</td></tr>
<tr><td>[[&&assertStatus]]</td><td>Returns a string that contains a summary of the counts of [[Assert command|assert]] command results.</td></tr>
<tr><td>[[&&assertSuccessCount]]</td><td>Returns a count of the number of times that the result of an [[Assert command|assert]] macro command is a Success.</td></tr>
<tr><td>[[&&blackOrWhiteList]]</td><td>Tests whether the Debugger is [[Running only to listed procedures#Invoking White List or Black List processing|filtering]] the procedures you are going to debug, and if so, whether a Black List or White List is being used.</td></tr>
<tr><td>[[&&buildNumber]]</td><td>Returns the number of the build of the Client from which the function is called.</td></tr>
<tr><td>[[&&concatenate]]</td><td>Concatenate and return the function's arguments.</td></tr>
<tr><td>[[&&currentPacFile]]</td><td>Returns the URL of the Proxy Auto Config (PAC) file in use, or it returns empty if no PAC file is in use.</td></tr>
<tr><td>[[&&currentRunningMacro]]</td><td>Returns the full file-system path to the macro within which it is called. If not called from within a macro, the function returns a null string.</td></tr>
<tr><td>[[&&currentTitle]]</td><td>Returns the current title of the Client main window.</td></tr>
<tr><td>[[&&exists]]</td><td>Tests if a [[Working with macro variables|macro variable]] is defined.</td></tr>
<tr><td>[[&&fileExists]]</td><td>Returns 1 if the file identified by fileSpec exists, 0 if not. </td></tr>
<tr><td>[[&&getMainSearchInputArea]]</td><td>Returns the value specified in the [[Search facility|search]] input area on the Client main window.</td></tr>
<tr><td>[[&&getScope]]</td><td>Returns the scope of the specified routine from the SOUL call stack, -1 if routine not found or we are not executing a program.</td></tr>
<tr><td>[[&&globalAssertFailureCount]]</td><td>Same as [[&&assertFailureCount]] except its scope is the entire Client session.</td></tr>
<tr><td>[[&&globalAssertStatus]]</td><td>Same as [[&&assertStatus]] except its scope is the entire Client session.</td></tr>
<tr><td>[[&&globalAssertSuccessCount]]</td><td>Same as [[&&assertSuccessCount]] except its scope is the entire Client session.</td></tr>
<tr><td>[[&&ieMode function]]</td><td>Returns the current setting of the Client's [[File menu options|IE Mode preference.]]</td></tr>
<tr><td>[[&&index]]</td><td>Returns the 1-based position of the needle argument within the haystack argument, or it returns 0 if the needle value is not found within the haystack value.</td></tr>
<tr><td>[[&&isWatched]]</td><td>Determines whether its argument is a variable that is currently specified in the Watch Window. If it is, &&isWatched returns 1<; if not, it returns 0.</td></tr>
<tr><td>[[&&isWindowOpen]]</td><td>Returns 1 if the window whose title is passed is open, 0 otherwise</td></tr>
<tr><td>[[&&length]]</td><td>Returns the length in characters of its string argument.  </td></tr>
<tr><td>[[&&logFile]]</td><td>Returns the absolute Windows file path of the client log file (the log.txt file).</td></tr>
<tr><td>[[&&numberOfBreakpoints]]</td><td>Returns the number of breakpoints that are set in the current request, irrespective of the current executing position in the request.</td></tr>
<tr><td>[[&&numberOfLevels]]</td><td>Returns the number of code levels being debugged. The main program is one level, and each active daemon adds another level.</td></tr>
<tr><td>[[&&numberWatched]]</td><td>Returns the number of items that are currently [[Watching program data items|being watched]] in the Watch Window.</td></tr>
<tr><td>[[&&originalTitle]]</td><td>Returns the default value of the title of the Client main window.</td></tr>
<tr><td>[[&&preference]]</td><td>Returns the value of the specified Client preference setting.</td></tr>
<tr><td>[[&&procName]]</td><td>Returns the name of the procedure that is being executed. </td></tr>
<tr><td>[[&&prompt]]</td><td>Pauses a macro while you supply an argument value for a command that is specified within the macro, then continues running the macro using the supplied value for the command.</td></tr>
<tr><td>[[&&quote]]</td><td>Returns its argument enclosed in double quotes.</td></tr>
<tr><td>[[&&scriptFolder]]</td><td>Returns the value of </span><span class="f_Para" style="font-family: 'Courier New',Courier,monospace;">[[Customize debuggerConfig file#Alternative locations for Client files|&lt;scriptFolder&gt;]]</span> from debuggerConfig.xml.</td></tr>
<tr><td>[[&&searchResult]]</td><td>Returns the line number of the line that contained the found string, if the last Client search operation successfully found something.</td></tr>
<tr><td>[[&&searchSuccess]]</td><td>Returns 1 (True) if the last Client search operation (invoked by button or command) successfully found something. If the last search found nothing, or if there was no prior search, &&searchSuccess returns 0 (False).</td></tr>
<tr><td>[[&&selectedTab]]</td><td>Returns the label of the Client main window tab that is currently active. Or, it returns a null string ('') if no tab is active</td></tr>
<tr><td>[[&&stateFileFolder]]</td><td>Returns the location of all "state" files such as the log and saved preferences and window positions.</td></tr>
<tr><td>[[&&statusMessage]]</td><td>Returns the most recent Client [[Status bar|status]] message.</td></tr>
<tr><td>[[&&substring]]</td><td>Return a substring of the target ''string'' argument.</td></tr>
<tr><td>[[&&sum]]</td><td>Returns the sum of the function arguments.</td></tr>
<tr><td>[[&&verifyMatch]]</td><td>Returns the 1-based position (in ''string'') of the first character in ''string'' that is also in the characters in ''charSet''.</td></tr>
<tr><td>[[&&verifyNoMatch]]</td><td>Returns the 1-based position (in ''string'') of the first character in ''string'' that is '''''not''''' in the characters in ''charSet''. If no character in ''string'' is not in ''charSet'', returns 0.</td></tr>
<tr><td>[[&&windowStatus]]</td><td>Returns 1 if the named window is [[Opening an external window|open]], 0 otherwise. </td></tr> -->
<!--bypass FUNCHECK.WIKI-->
<!-- </table>
</div> -->

Latest revision as of 14:55, 5 June 2023

This is a master category and page for all things Debugger (Janus/TN3270 Sirius Debugger).

About the Debuggers

The Janus Debugger is a tool designed for developers who create and maintain Janus Web Server applications. With software installed in the Model 204 Online, as well as on a workstation with a browser that can access the Web Server, the Janus Debugger lets you examine in statement by statement detail the SOUL code that the Web Server executes.

The TN3270 Debugger is designed for developers who create and maintain Model 204 3270 and Batch2 applications. With software installed on the Model 204 Online, it uses the same Debugger Client as the Janus Debugger, letting you examine 3270 and Batch2 applications.

An instance of the Debugger Client can be debugging a web application (acting as the Janus Debugger), or it can be debugging a 3270 or Batch2 application (acting as the TN3270 Debugger). At any given time, it may only be debugging one type of application. The title bar of the Debugger Client indicates the application type.

The basic operation

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

  1. Request source code is sent to the Debugger Client deployed on a workstation.
  2. The Debugger Client displays the code, navigable to top and bottom, with search features available.
  3. Program execution is paused, the Debugger awaiting the instructions you provide through the Client GUI.

The feature set

Both Debuggers provide these typical debugging capabilities:

  • Viewing code while running it
  • Stepping through the code one statement at a time
  • Examining variable values
  • Using a separate "watch window" for the display of specified data items
  • Setting breakpoints at which code execution pauses
  • Skipping over selected subroutines/methods

In addition, the Debuggers provide:

  • A compact Graphical User Interface with user configurable buttons and hot keys
  • Views of the Model 204 audit trail and code executed by daemons
  • Tracing of statements that modify variables in executed code lines, or tracing until a variable becomes a certain value
  • Saving of sets of variables to be watched, which are restorable at any time
  • Display of Web Server output (Janus Debugger) and screen variables (TN3270 Debugger)
  • A code line's Model 204 procedure details (subsystem, file, name, line number, text preceding dummy string substitution)
  • Filtering of program code to skip over all but the Model 204 procedure you identify or the procedures you selected (added to "White List")
  • Stepping out of a called subroutine, method, or daemon and continuing processing at the statement after the call to the subroutine, method, or daemon
  • Examination of longstrings, $lists, objects
  • System class methods that let you insert code in User Language that runs only under the Debuggers

The architecture

The following figure displays the principal components in a Janus Debugger configuration:

debarchJDB  

The main components in a TN3270 Debugger configuration parallel those in the Janus Debugger configuration, the principal exception being the absence of the web browser:

debarchSirDB  

Per Debugger session for a Janus Web or 3270 or Batch2 application, these components are active in the Online and on the workstation:

Model 204 nucleus hooks

(Assembler; not shown above)

Compiler:

  • Capture source lines, before and after dummy string substitution.
  • Note source of line (procedure and file).

Evaluator:

  • Can step one statement at a time, and can step over routines and methods.
  • Can stop on breakpoints.
  • Between statements, can get variable, field, and global values, to support display, trace, watch, etc.
Janus Web thread Janus Debugger only.
3270/Batch2 thread TN3270 Debugger only.

Worker threads

(Assembler Language, one for each thread being debugged)

For each debugging session, a “worker thread” arbitrates between the thread being debugged and the workstation client.

A worker thread does the following:

  • Passes data between the thread being debugged and the Client.
  • Controls the execution of the thread being debugged, at the behest of the Client.

Debugger Client

(Windows GUI, written in VB.NET)

The Debugger Client resides on the developer's workstation. It is a proxy server in a Janus Debugger session: the browser no longer directly connects to the Web Server, but instead it "sends" to and "receives" from the Client.

The Client GUI lets you control the application and view variable values, source code, traces, and for Janus Debugger sessions, the web output buffer.

Web browser Janus Debugger only. Any web browser that allows proxy servers.

Versions and builds 

Independent of the version of Model 204 being run, the Debugger Client has its own numbered sequence of "builds" that contain new and updated features. From build to build of the Debugger Client, the About box (accessed by the Help menu) provides a searchable list of the principal changes in each of the previous builds of the Debugger Client.

System requirements

The Online Configuration section of this document specifies the requirements for Model 204 product release levels, licenses, and maintenance, as well as Debugger product authorization. In addition are instructions for configuring a Model 204 Online that hosts the Debugger, which include User 0 parameter and TCP port definitions and increases in storage table and work area sizes for both of these:

  • The worker thread that services a debugging session
  • The thread on which the program to be debugged is running  

Known limitations 

The following are known limitations and issues concerning the Janus and TN3270 Debuggers:

  • You may not use either Debugger for DBCS data.  
  • You may use the Janus Debugger on a Janus Web Legacy Support thread only if you also have a license for the TN3270 Debugger.
  • No asynchronous daemon or $COMMBG requests may be debugged. They are simply ignored by the Debugger (and they execute normally).
  • The client requires Windows 7 or higher
  • Both the Execution Trace tab (output from one trace) and the Web Buffer tab have 5000 line capacities. If the capacity is exceeded, the last 5000 lines are shown.

Check Prerequisites

Ensure you are running Version 7.5 or higher of Model 204.  You can verify this by issuing the VIEW VERSION command at the Model 204 command prompt, for example:

VIEW VERSION                                   VERSION   7.9.0A      Release of Model 204 

Installation and Configuration

This section describes how to install the Janus Debugger, the TN3270 Debugger, or both. Once you complete this installation, you can begin to use either or both products.

This section consists of two subsections of mostly cookbook-style directions. You should first complete the steps in the "Online Configuration" section, then complete  the "Workstation Configuration" section.

Most of the steps are to be performed whether you are installing one or both Debugger products, and exceptions are noted.

If you will be using a local editor (Xtend or UltraEdit) with the Debugger, finish the Debugger installation first, then see Using a local editor.

For information about setting up at your site a centralized distribution of updated Debugger Client replacement files, see Providing updated versions of the Debugger Client.

Online Configuration

This section shows how to prepare a Model 204 Online for use of the Janus Debugger, the TN3270 Debugger, or both.

The installation tasks require Model 204 system manager privileges. Also, since you must set at least one User 0 parameter, a cycle of the Model 204 Online will be required.

The Online configuration tasks are listed below.

Workstation Configuration

This section specifies how to prepare a workstation for use by the Janus Debugger, TN3270 Debugger, or both.

These are the workstation configuration tasks:

Perform preliminary tasks
Run, check, and verify the Client installation
Customize the debuggerConfig.xml file
Configure the web browser (Janus Debugger only)
Test the end-to-end configuration

Menu Bar

The Debugger Client has multiple menus, each of which is described in the following subsections. Many of the menu options duplicate the actions of default Client buttons and keyboard shortcuts, and most menu options are associated with Client commands.

menubar2

If a hot key is mapped to a command that is associated with a menu option, the hot key is displayed in parentheses next to the menu option.

The File menu options
The Window menu options
The Search menu options
The Breakpoints menu options
The Execution menu options
The Data Display menu options
The Error menu options
The Macros menu options
The Help menu options

Performing Basic GUI tasks

These sections describe how you perform basic operations using the Debugger:

Using Debugger Macros

A macro lets you execute one or more commands as a single unit of work to automate an often-repeated series of operations.  

Subsequent sections describe:

Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "Debugger Home"

The following 114 pages are in this category, out of 114 total.