!Reporter
v2.64 (14 Mar 2006)
The !Reporter application provides commands to display information in the Reporter window which can be very useful when developing and debugging Wimp programs and Obey files.
There are many new facilities with this release. The major ones are ...
- Customisation of the initial state of !Reporter is now handled
(transparently) by !ConfiX, rather than by editing the Choices file manually.
- The Boot Logging facilities can now be specified using the new !ConfiX
customisation, with !Boot files being automatically added, removed or
updated, rather than using obey files and the Installer module.
- A new facility for a Basic BackTrace. This enables a trace to be
specified in a Basic program, but not displayed. However, if there is an
error and *ReportError is used, it will then display the latest lines of the
Trace up to the error.
- Major re-write of SWI Vector intercept code, so RMA Monitoring and
TaskInitialisation and Close are now available on the Iyonix.
- Major re-write of Redraw window code. Now faster, particularly with
larger Text Area sizes (reductions from 30% up to 60%). Also protected
against stray control characters corrupting the screen when Reported.
- The Report Log facility has had a significant performance improvement.
It is about 5 times faster than before, and the disc does not sound demented!
- Added Command submenu for Time, Source, and Obey.
- A new option to open the Reporter window at startup.
- Added Pause/Update facility for display.
- Added new ReportStack command (see !Help)
- Added *ReportObeyOn/Off option, and highlit Obey commands.
- Added new *ReportPush & Pull commands to save/restore Status.
- Ctrl-Up and Ctrl-Down now act just as Home and End.
The main facilities of Reporter are ...
- Basic programs can display text, values of variables, evaluated expressions, and storage, just with commands - NO additional Basic PROCs or FNs.
- All OS Commands executed can be displayed, including any error messages, and optional Time and Source.
- Any Error or WimpError messages and codes can be displayed.
- ReportDump command for displaying storage.
- ReportTrace command for displaying Basic TRACE output (on Iyonix indents and reports ENDPROC/ENDFN.)
- ReportPoll command for easy displays of WimpPoll reason codes.
- ReportWhere command for displaying information about the latest abort.
- ReportBreak procedure to set up Breakpoints, where variables can be displayed and changed.
- ReportRma commands to display arr RMA storage Claims, Frees and Extends.
- ReportTask commands to display all Wimp Task Inits and Closes.
- Anything written to file system Report will be displayed.
- Anything output after VDU 4 from a task will be displayed.
- The text and background can be coloured in many of the Wimp colours.
- Reporting can be turned On or Off, from the program or externally.
- The display can be saved to a file, with an automatic numeric suffix.
- Basic memory usage summary can be displayed.
- Basic Errors can be displayed, and Throwback invoked to display the line in error.
- Obey files can display text, and values of OS Variables.
- Assembled code can display text, and values of registers.
- Ada95 code can display text, and values of OS variables.
- Help information in StrongHelp format for ease of use.
- All Reporter commands can be used during the whole RISC OS !Boot sequence.
- Choices file to set initial startup customisation.
- Will run on RISC OS v3, v4, and Iyonix v5 in 32 bit mode.
Commands Provided
A brief introduction to the main commands available follows:
*Report [ <text> | <<OsVariable>> | <BasicVariable> | (<BasicExpression>) ]
- This takes any text passed to it and displays it in the Reporter window.
- If an OS variable is found it will display <variable>=value.
- If \t is found, it will display the time.
- If a Basic variable name is found, it will display name=value.
- If a Basic expression is found in brackets (), it will display (expr)=value.
- If a numeric Basic variable or expression is preceeded by a ~ sign the output is in Hexadecimal.
*ReportCmdOn [<text>]
- Turns Reporting On for all RISC OS Commands executed - including Aliases, Comments and empty lines.
- Each Reported command line can start with a optional timestamp.
- If a command returns an error message, it will be displayed with a Red Background.
- Reporter can be started in !Boot.!Run, enabling all commands run during Boot to be seen.
*ReportErrOn [<text>]
- Turns Reporting On for any Errors, which will then display giving the time, the Error Number and the Error Message, all with a Red background. This can be useful if you want to look back over the exact error messages, or copy them for a bug report.
- If it was a Wimp Error, displayed in an error box, any Task Name is also displayed. (RISC OS v3.50+)
*ReportClear [ <text> ]
- Clears the Reporter window, then displays any text.
- It can also be used from the Reporter menu.
*ReportOff [ <text> ]
*ReportOn [ <text> ]
- These commands will turn all reporting Off/On.
- They enable easy control over which reports are produced without adding/removing many other commands.
- They can also be used from the Reporter menu.
*ReportDump [(start)] [(length)] [(width)] [text]
- Displays the storage from the expression (start) for (length) bytes, with display width of (width), in Hexadecimal and Character format, with the address of each line and the offset of the line from the beginning.
*ReportTrace [OFF] [ON] [PROC] [<number>] [<text>]
- Displays the output from a Basic TRACE command, which can help detailed investigation of small parts of a program.
- The normal Basic TRACE cannot be displayed to the screen from a Wimp program in realtime, without splatting it all over the screen, so it is not much use. *ReportTrace enables it to be easily used.
*ReportError [Throwback]
- This command is intended to be placed in an Basic error handling routine.
- It will display the error and error line in the Reporter window.
- If Throwback was specified, a Throwback window will open with the filename, and the error line and message. Clicking on this line will load the program into Zap (or another suitable Throwback Handler) if not already loaded, then display the program in error at the line in error.
Example of Reporter Usage
A simple Basic program ...
100 REM Simple Reporter Demonstration
110 ON ERROR PROCerror :END
120 *Report \G Start Simple Basic Test at time \t ...
130 *Report \b Hello World from Reporter
140 String$="a string" :Integer%=67890 :HexInt%=&1234
150 *Report String$ Integer% ~HexInt%
160 Float = 9876/77
170 DIM FloatArray(5) :FloatArray(1) = 1.234
180 *Report Float FloatArray(1)
190 *Report ((ATN Integer%)*100)
200 *Set Test$OsVar Test OS Variable
210 *Report <Test$OsVar>
220 A% = B% / 0
230 END
240
250 DEF PROCerror
260 ON ERROR OFF
270 *ReportError Throwback
280 ENDPROC
... and the Reporter display
Analysis Utilities
!ReportTA
analyses Trace data from BASIC programs collected by the !Reporter command
*ReportTrace, counting the number of times Procedures, Functions, or even
Lines are used. This enables the easy identification of program code that is: inefficient, so it can be optimised;
very heavily used, so it can be optimised;
never used, either for further testing, or removal.
!ReportRMA
analyses Trace data from RMA Storage activity collected by the !Reporter command
*ReportRmaOn, counting the number of storage Claims, Frees and Extends, and checking if there are any Frees or Extends without a Claim, or any Claims without a Free.
Note that they are both included in the Reporter archive, but also need ArmSort to run.
Recent Change History
21/06/2001 v2.46 Release version
23/08/2001 v2.47 Added missing menu items, Enabled FS to use Colour/Time/OS Var, Added TaskOn/Off & Vdu4 On/Off to Swi, Fixed Trace bug, Added pointer & string display to registers, Fixed address validate, Enabled ReportDump from OS & SWI, Added SWI Report_Regs, Enabled ReportSave default file to be changed and include number.
14/02/2003 v2.48 32bit changes, added ReportLog and Array() dimensions.
15/02/2003 v2.49 Iyonix Basic Trace indents and reports ENDPROC/ENDFN. Added source option to command Reporting, plus ReportTimeOn/Off and ReportSrceOn/Off.
28/03/2003 v2.50 Release version
03/05/2003 v2.51 Re-enabled SWIs on Iyonix. Updated Functions for 32 bit. Enabled strings in () to display any hex characters. Fixed ReportDump bug, & now works in OS. Fixed save message. New Tab control. Window draggable off-screen.
04/05/2003 v2.52 Release version
08/05/2003 v2.53 Allowed multiple tabs. Catered for Throwback to Basic
Library. Corrected TextS in BASIC check. Added bars in Trace nesting. Added
Function to Where. Added Toolbox to ReportPoll. Bug fixes.
08/02/2004 v2.54 Release version
25/02/2004 v2.55 Added Time option to *ReportTrace for accurate microsecond
timestamps.
27/03/2004 v2.56 Release version
16/05/2004 v2.57 Added ReportTrace Values and List
18/05/2004 v2.58 Release version
02/09/2005 v2.59 Fixed data aborts in Where. Improved Error display, catering for duff error blocks and messages. Added Basic BackTrace. Used !ConfiX for configuration. Improved BootLogging. Added ReportStack command. Added ReportObeyOn/Off. Added Command submenu for Time, Source and Obey. Enabled Rma and Task Reporting on Iyonix. Improved Redraw code. Stopped Control SWIs corrupting r0. Fixed VDU4 colours. Added Pause facility. Miscellaneous bug fixes.
19/01/2006 v2.60 Release version for mailing list.
22/01/2006 v2.61 Added *ReportPush/Pull, Ctrl-Up/Down, & missing control SWIs.
23/01/2006 v2.62 Release version
01/03/2006 v2.63 Catered for rectangular pixel modes. Improved scrolling. Added AutoScroll facility. Clear now rounds down to whole number of lines.
14/03/2006 v2.64 Release version
How to obtain Reporter
To download please click on
!Reporter (110 kByte Zip Archive). This archive was updated on 2nd April to include module v2.64b, which is a small bug-fix of v2.64a.
If you already have v2.62 or v2.63, you can download a smaller update archive by clicking on
!Reporter (56 kByte Zip Archive) which will bring v2.62 or v2.63 up to v2.64b. This archive was updated on 2nd April to include module v2.64b, which is a small bug-fix of v2.64a.
If you already have v2.64 or v2.64a, you can download an even smaller update archive by clicking on
!Reporter (17 kByte Zip Archive) which just includes module v2.64b, which is a small bug-fix of v2.64a.
If you are running on an A9home, AND you already have v2.64, v2.64a, or v2.64b, you can download an small update archive by clicking on
!Reporter (17 kByte Zip Archive) which just includes module v2.64d, which is a small bug-fix of v2.64b to avoid problems when trying to use SWI Report_Regs on an A9home.
Please click home to return to the Avisoft home page.
E&OE. © Copyright Martin Avison, 2006.
Last updated: Tue 23rd May 2006
Please send any queries or comments to
This site is hosted by Force9 Internet