Diagnostics and Debugging

This section lists commands specifically to do with diagnositics and debugging

Debug() Enables simple procedure call debugging
Gripe Report a problem, solution or idea about Open GENIE
Inspect Inspect in some detail, the type and contents of Open GENIE variables.
Version Prints the Open GENIE Version.

Command Reference

Debug()

Enables simple procedure call debugging

DEBUG/ON   Enable debugging of procedure calls
DEBUG/OFF   Switch off debugging messages

example:

	# Switch debugging on for next statement
	>> DEBUG/ON
	>> printn "HI"
	0:PRINTN
	hi

Debug

This procedure switches on rudimentary procedure debugging. For each procedure that is called, a line giving the name of each procedure is printed on the screen. The level to which this line is indented shows how far down in the program the procedure is called. Although not ideal, this can give you a good idea of which procedure has caused an error message.

Gripe()

Report a problem, solution or idea about Open GENIE

GRIPE [subject=String] [message=String] [email=String] Send a message to the Open GENIE development team.

example:

	# Type in a gripe interactively
	>> Gripe
	  ... fill in details as requested ...

Note: email defaults to genie@isise.rl.ac.uk, the normal support mail address for Open GENIE.

Gripe

This command simplifies the reporting of problems, ideas or solutions to problems you have found when using Open GENIE. Just typing "gripe" should be sufficient to get an error message directly to the development team and management.

Parameters:

Subject (String)

Useful if you can give a succinct subject line so we can categorise any gripes easily

Message (String)

One line gripes are very acceptable, and this makes them possible.

Email (String)

the Gripe() command will attempt to send all gripes to genie@isise.rl.ac.uk but if your mailer has to cross a firewall or gateway system to get onto the internet you can put the appropriate address here to make the gripe command work.

Inspect()

Inspect in some detail, the type and contents of Open GENIE variables.

INSPECT p1=Any Print the internal type or representation of a variable

example:

	# Example in preformatted font
	>> inspect 45
	An instance of Integer

Inspect

The Inspect() command gives details of the type and structure of the underlying smalltalk variables. Sometimes it can be useful to get information about the type of a complex variable but usually one of the Print() commands is a better bet.

Parameters:

P1 (Any)

Variable to be inspected.

Version()

Prints the Open GENIE Version.

VERSION   Print out the version string

example:

	# print out the genie version
	>> Version
	@(#)Open GENIE V1.1 BUILD-30
	[Linked] Thu Jul 10 13:47:02 BST 1997 [library version] 1.1

Note: Please quote this when reporting problems with the Gripe() command.

Version

Prints out the Open GENIE version string (the same string printed out on startup of Open GENIE).

in handle, in tag, in object-id) status code Associates a handle with the referenced data file object. GX_put(in handle, in tag, in object-id, in flag) status code Writes data associated with a handle into a data file.

Handle manipulation

Function Return value Description
GX_assign_handle(in handle_lval, in handle_rval) status code Assign one handle to the whole or part of another handle.
GX_release_handle(in handle) status code Deactivate the handle and release and storage.
GX_transfer(in handle, in direction, in type, inout data, in length, in dims) status code Transfer data to or from variables in the program.

 

NOTES:

  1. References to an object in the data file can be made either by a string tag or an object-id (number) for the data file. For a GX_get, if both are specified, the tag must correspond to the tag on the object selected by the object-id. Objects may also be accessed by block number if the object-id is negative (e.g. -1 for block 1).
  2. For a GX_put, the object at the object-id specified may be overwritten with the new tag and associated handle value. If the "flag" parameter to GX_put is set to "OVERWRITE", when the object-id corresponds with that already in an output file, the object and tag will be overwritten.
  3. Handles are always strings and are marked as "in" parameters. It is worth pointing out that although the handle is effectively a constant reference, what it points to acts like a variable.


ÿÿþÿÿÿÿþÿÿÿýýÿÿÿÿüþþüÿÿÿýÿþýûÿÿÿÿÿþýÿÿÿþýþûþÿÿþÿÿýÿýýÿýÿÿÿÿþÿþÿÿûÿÿþþÿÿÿÿýýÿÿþÿþýüÿÿÿþüÿüþþýýþÿûÿüÿüþüþþþþÿÿýÿÿýþýþÿÿÿÿÿÿþüýÿÿþÿþÿýþÿÿþþÿþýþýüýþüýþþýÿýþþÿüûÿüüÿþüþþÿþÿüúüþÿÿüÿþþúþüÿýÿüþÿýýþÿþÿýþþýÿþýýýÿþ ùÿÿûûýþÿþÿÿÿüþþÿýýþþÿüúÿþýÿÿýÿÿýþÿÿûþýýÿüÿþýÿÿÿÿýÿýýüüþýÿÿþþÿýýÿÿþÿÿþþýüüÿþÿþÿüþýþþÿþþþýüþýÿÿýþýýÿÿþþýþÿýþÿÿÿÿÿýþÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿþÿþÿÿÿþÿÿÿÿýÿÿÿÿÿÿþýÿþÿÿÿÿÿÿÿÿÿÿÿÿýýþÿþýþÿþýþÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿþþÿÿÿÿþÿþüÿÿþþÿýÿÿÿþþýþÿúÿÿþþÿþÿþýþÿÿÿýýÿûþþÿþýÿüþýÿÿüûýþÿÿþüÿÿÿýþþúÿýþÿþÿþÿþþýþþþýþþþÿýúÿþþýÿþýýþûþþýûÿÿüüÿÿÿÿÿþÿÿþÿþýýúþýþÿþþþþüÿûúÿûÿýÿÿÿüÿÿýÿþýùÿþþûÿûýýþýÿþýÿýþÿþýûýþýÿÿüÿýýüüÿþÿÿýùÿþýýûþþùüûþýþýþþÿýþüüÿþÿûüýþýùÿþÿÿýþÿüüÿÿÿþþþýÿþÿüüÿÿýüÿþýÿÿûýÿþÿÿþÿÿÿþþÿÿþÿýþÿþþÿÿÿþþÿÿÿÿÿÿÿÿÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþÿÿÿÿþþÿþüþÿÿÿþýÿþÿÿÿüþþÿÿÿþÿÿÿÿþþÿÿÿýÿÿÿÿÿþÿýýÿÿÿþÿÿÿÿþÿþÿþýþÿÿÿþýÿÿÿÿÿÿüþÿÿÿþÿþÿþÿüÿþÿüþÿýýÿÿüþþÿÿþÿÿýþþÿÿÿÿÿÿþýýÿüÿÿýþÿÿþÿþÿþýûýÿÿþþÿÿÿÿüúÿÿþþÿþûÿþþþýüÿýþþþþýýþÿýþüýþÿÿÿÿþúýþþýÿûýÿþÿýÿþûþÿÿÿÿýüýþÿÿþþýÿþÿÿÿÿÿÿÿþÿÿÿúüýýýÿþÿýýþýüÿþüþÿüþÿýûÿþÿ