AminetAminet
Search:
84736 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/debug/OsGrind.lha

Mirror:Random
Showing: m68k-amigaos iconppc-amigaos iconppc-morphos iconi386-aros iconi386-amithlon iconppc-warpup iconppc-powerup icongeneric icon
No screenshot available
Short:Configurable Os argument checker
Author: thomas.richter at alumni.tu-berlin.de (Thomas Richter)
Type:dev/debug
Version:40.4
Architecture:m68k-amigaos
Date:2023-03-19
Download:dev/debug/OsGrind.lha - View contents
Readme:dev/debug/OsGrind.readme
Downloads:1390

OsGrind is a configurable/scriptable debugging tool to validate
arguments of operating system calls against requirements specified
in the Autodocs. In case the parameters are invalid, the tool
creates debugging ouptut, including registers, stack retrace,
hunk and segment information and generates a disassembly around
the return path.

OsGrind has similar goals than PatchWork by Richard Körber, but
it does not have the checks built-in. Instead, all validation tests
are configured through an external file which is compiled at run
time to executable code.

----------------------------------------------------------------------

New in release 40.4:

- OsGrind now also prints symbol/offset and source file/line number
  information if SegTracker v47 is available and has been started
  with the "LoadSymbols" parameter to extract such information from
  the loaded binary.

----------------------------------------------------------------------

New in release 40.3:

- If the mmu.library is present and loaded, OsGrind now checks
  the address of the stack lines before it attempts to print them.
  This avoids MuForce hits in case the stack area of the traced
  process is protected by MuGuardianAngel, and OsGrind would then
  attempt to read beyond the end of the allocated stack area.

----------------------------------------------------------------------

New in release 40.2:

- The AREGCHECK option missed to check register A2.
- All calls through the dos.library check now whether A6 is loaded
  with DOSBase and create a warning if not so. While forgetting to
  load A6 with DOSBase was permissible in Kick 1.3 and before due to
  the BCPL nature of dos, it is expected this will be phased out in
  the future.
- All calls through the public dos.library GlobVec create now a 
  warning. Again, this was permissible in Kick 1.3 and before, though
  it is expected that BCPL legacy will be phased out.

----------------------------------------------------------------------

Release 40.1:	 First official (non-preview) release

- The assembly syntax parser also attempted to contents of 
macros instead of skipping them, causing some confusion.

- The assembly syntax parser did not recognize the ' operator. 

- The ##check block parser got confused on terminating blank spaces. 
In net effect, this caused parsing errors on <dos/dos.i>.

- OsGrind is now also prepared to patch functions that are used within
the SetFunction() function itself.

- The OsGrind.config file was extended to also check for the validity
of the mode/type arguments of Open() and Lock().

- There was a bad bit check in AllocNamedObject() that was fixed in
the default OsGrind.config.

----------------------------------------------------------------------

Release 40.0:	 This is an internal beta release.

----------------------------------------------------------------------

Installation:

- Copy OsGrind to whereever you like, possibly C:
- Copy OsGrind.config to ENVARC:

The config file assumes that the following assigns are made:

FD: shall point to the directory containing the library definition
files, such as exec_lib.fd or dos_lib.fd.

INCLUDE: shall point to the directory containing the operating system
include files, preferably the V44 (Os 3.9) or later includes.

It is recommended to install the following additional components:

- SegTracker: If SegTracker is available and run upfront this tool,
  OsGrind will print hunk and offset information of the stack trace
  back.
- disassembler.library (from the MuForce package): If present,
  OsGrind may be instructed to generate a disassembly around the
  faulty call path.
- Sashimi: By default, OsGrind will report its debug output to the
  serial port, 9600 baud, 8 bit, no parity. With Sashimi, debug
  output can be redirected to a console. Optionally, with Os 3.2 or
  above, the system logger of the boot menu can be used to this
  end as well.
- MuForce: To capture additional problems, installing this tool is
  recommended as well.

OsGrind does, by default, not run in background, and aborts on ^C.
To run it in background, use the "RUN" command, or the "&" (runback)
operator of the shell.

----------------------------------------------------------------------

OsGrind command line arguments:

OsGrind PATCHFILE,QUIT=OFF/S,DEBUG/S,STACKLINES/K/N,
	DREGCHECK/S,AREGCHECK/S,STACKCHECK/S,
	DISPC=SHOWDIS/S,DISRANGE/K/N,DISABLEBELL/S,
	LED/K/N,DRYRUN/S

PATCHFILE: The file to read the configuration from. By default,
	   the configuration is read from ENV:OsGrind.config.

The syntax of the configuration file is discussed in Syntax.REAMDE

QUIT=OFF:  Stops a running instance of OsGrind. Alternatively, you
	   can stop OsGrind via ^C (Control-C) from the console.	 

DEBUG:     Writes the run-time compiled code to the output stream
	   to allow manual validation of the Os patches. Provide
	   this output to allow me to debug OsGrind.

STACKLINES:A numerical argument that specifies how many lines of
	   stack OsGrind shall print as stack traceback, and
	   optionally check for hunk/offset information by
	   SegTracker.

DREGCHECK: Test the data registers through SegTracker.

AREGCHECK: Test the address registers through SegTracker.

STACKCHECK:Test stack traceback through SegTracker.

DISPC:	   Provide a disassembly around the faulty Os call. This
	   argument requires the disassembler.library in LIBS:.

DISRANGE:  The size of the disassembled region in bytes. Disassembly
	   starts roughly this number of bytes ahead of the PC,
	   and continues approximately the same number of bytes
	   below the PC.

DISABLEBELL: Disable printing the BELL character upon hits, i.e.
	   invalid function arguments.

LED:	   Determines the delay for flashing the power LED upon a
	   hit. If 0, the LED is not flashed. Larger numbers delay
	   longer.

DRYRUN:	   Only read the configuration file, test its syntax
	   and optionally print the generated code, but do not
	   install patches.

----------------------------------------------------------------------

                      The THOR-Software Licence (v3, January 2nd 2021)


This License applies to the computer programs known as the "OsGrind".
The "Program", below, refers to such program. The "Archive" refers to
the package of distribution, as prepared by the author of the Program,
Thomas Richter. Each licensee is addressed as "you".


The Program and the data in the archive are freely distributable
under the restrictions stated below, but are also Copyright (c)
Thomas Richter.

Distribution of the Program, the Archive and the data in the Archive by a
commercial organization without written permission from the author to any
third party is prohibited if any payment is made in connection with such
distribution, whether directly (as in payment for a copy of the Program) or
indirectly (as in payment for some service related to the Program, or
payment for some product or service that includes a copy of the Program
"without charge"; these are only examples, and not an exhaustive
enumeration of prohibited activities).


However, the following methods of distribution involving payment shall not
in and of themselves be a violation of this restriction:

(i) Distributing the Program on a physical data carrier (e.g. CD-ROM,
    DVD, USB-Stick, Disk...) provided that:

a) the Archive is reproduced entirely and verbatim on such data carrier,
   including especially this licence agreement;

b) the data carrier is made available to the public for a nominal
   fee only, i.e. for a fee that covers the costs of the data carrier,
   and shipment of the data carrier;

c) a data carrier with the Program installed is made available to the
   author for free except for shipment costs, and

d) provided further that all information on said data carrier is
   redistributable for non-commercial purposes without charge.


Redistribution of a modified version of the Archive, the Program or the
contents of the Archive is prohibited in any way, by any organization,
regardless whether commercial or non-commercial. Everything must be kept
together, in original and unmodified form.



Limitations.


THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.


IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.


                                                        Thomas Richter

----------------------------------------------------------------------

Send ideas, improvements, bugreports (please as concrete as possible) to:


        Thomas Richter


EMail:  thomas.richter@alumni.tu-berlin.de

----------------------------------------------------------------------

Thomas Richter, March 2023


Contents of dev/debug/OsGrind.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                  273     628  43.5% -lh5- 61cc Mar 18 18:08 OsGrind.info
[unknown]                14571   32272  45.2% -lh5- 95ff Mar 18 18:00 OsGrind/OsGrind
[unknown]                 4244   16984  25.0% -lh5- a7c5 Jan 21  2021 OsGrind/OsGrind.config
[unknown]                 3954    9447  41.9% -lh5- 9169 Mar 18 18:03 OsGrind/OsGrind.readme
[unknown]                 7689   25716  29.9% -lh5- c79d Jan  4  2021 OsGrind/Syntax.README
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total         5 files   30731   85047  36.1%            Mar 19 04:56
Page generated in 0.01 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>