VMS IDE for Java (Kotlin, Scala)

From VSI OpenVMS Wiki
Revision as of 09:17, 28 August 2019 by Sergey.vorfolomeev (talk | contribs) (Steps to run java project)
Jump to: navigation, search

Note: coming soon

Steps to run java project

  1. Change project settings: project type (java, scala or kotlin), project name, root folder, source, headers, resource and listing masks
  2. Write code
  3. Create MMS
  4. Upload
  5. Build
  6. Collect Java classes. This step is required for debugging.
  7. Run

Because project target will be compiled by one command for all source files please do not mix Kotlin, Scala and Java source files in one project.

Abilities

  • Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.

Debugging

In order to use breakpoints one should execute Collect Java classes before debugging if project is changed and built.

Start

To start debugging press F5 button. If no debug configuration selected
no-config
the 'Select environment' dropdown window will be displayed.
dbg-select
Choose 'VMS JVM Debugger'. If all java classes collected successfully the 'entry class' quickpick window will be displayed.
select-main
Select one and debugging will start.

You can configure 'launch.json' to start predefined debug configuration. To do this press 'Configure or Fix...' button on the DEBUG panel.
dbg-configure-or-fix
If there is no 'launch.json' file the 'Select environment' dropdown window will be displayed. Choose 'VMS JVM Debugger'. If 'launch.json' file exists press 'Add Configuration' button in the right bottom side and select 'VMS IDE: Launch JVM'.

{
  "type": "vms jvm debugger",
  "request": "launch",
  "name": "Launch JVM",
  "classpath": "${command:FillClassPath}",
  "class": "${command:FillClassName}",
  "port": "5005-5105",
  "arguments": "",
  "stopOnEntry": true
}
  • Do not change type and request
  • Edit name
  • Enter class path - A ':' separated list of directories, JAR archives, and ZIP archives to search for class files. In case of "${command:FillClassPath}" class path will be given from project settings.
  • Enter full class name with the static main method. In case of "${command:FillClassName}" the 'select executable class' quickpick window will be displayed when debugging is started.
  • port is diapason of ports for JDB.
  • arguments is argumets string passed to the program.
  • stopOnEntry whether do stop or not on the entry of the program.

Breakpoints

Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.

Function breakpoints

Press '+' at the breakpoints view. Enter the function name in format <full_class_path>.<method>(<arg_type1>, <arg_type2>...). You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one. If no dialog appears press 'Activate Breakpoints'.

Data breakpoints

The UI for data breakpoints doesn't exist. To create data breakpoint enter 'watch all <class>.<field>' in the input debugging console while program is paused, to remove enter 'unwatch all <class>.<field>'.

Displaying/Setting variables

String variable is displayed 'as is', without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f. To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!

Debugging console

If the program is running, everything written in the input debugging console will be sent to the program. If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example 'eval a=100' will change the value of variable and this won't be caught by extension.