Was ist SysMon
--------------
  - SysMon ist ein System-Monitor, der smtliche ablaufende
    System-Funktionen anzeigen kann.
  - SysMon ist auerdem ein Monitor, der smtliche System-Resourcen
    anzeigen kann.
  - Da SysMon komplett aus dem Speicher entfernt werden kann,ist er
    'quasiresident'.

Zielgruppe
----------
  - Programmierer und Software Entwickler,
    - die eigene Programme berprfen wollen.
    - die die Arbeitsweise anderer Programme feststellen wollen.
    - die wissen wollen, wie sich bestimmte Programme in das System
      einklinken, welche Aufrufe sie abfangen, modifizieren oder
      hinter welche Aufrufe sie sich hinterhngen.
    - die die Interprozess-Kommunikation am Austausch von AES-Messages
      beobachten wollen.
    - die die Hufigkeit einzelner Systemaufrufe interessiert, damit 
      sie ihre Programme verbessern knnen.
    - die Interesse an den internen Ablufen des Systems haben.
  - Hobby-Programmierer
    - die anhand anderer Programme ihr Wissen und ihre Mglichkeiten
      erweitern wollen.
    - die einen tieferen Einblick oder berblick ber den Rechner
      gewinnen wollen.


A. Allgemeines
--------------
 Bedienung
 ---------
  - SysMon arbeitet mit einem Fenstersystem, da mit der Tastatur
    bedient wird.
  - Der Zustand des 'Tracers' ist mit einem Blick festzustellen.
  - Die wichtigsten Kommandos sind Control-Codes, die in allen
    Fenstern gelten.
  - Es gibt Funktionen, um sich schell zur gesuchten Information
    zu bewegen.

 Ein/Ausgabe
 -----------
  - SysMon luft unter allen Auflsungen des ST, auch OverScan und
    AutoSwitch-OverScan.
  - SysMon luft mit der MARTIX-SW  - und Color-Karte und der 
    MAXXON-MGE.
  - SysMon luft auf allen STs, auch dem STE und dem TT.
  - SysMon luft unter allen bekannten TOS-Versionen, bei unbekannten
    Versionen pat es sich selber an (AutoPatch)
  - SysMon luft mit 68000-68030.
  - Die Ein/Ausgaben knnen auch auf RS232-, Centronics- oder Midi-Port
    gehen.
  - Alle Trace-Ausgaben von SysMon knnen in einem Protokollfile
    gespeichert werden.
  - Die Profilingdaten knnen im Protokollfile gespeichert werden.
  - Alle Fenster von SysMon knnen im Protokollfile abgelegt werden.
  - Es gibt eine Notizblock-Funktion, damit man einfach Kommentare im
    Protokollfile unterbringen kann.

 Setups
 ------
  - Es gibt 10 verschiedene Setups, die gespeichet werden knnen.
  - Fr jedes Setup  kann der Modus, die angewhlten Programme und
    Funktionen  festgelegt werden.


B. Der Tracer
--------------
 1.Modi
 ------
  - Es gibt 4 Modi : RUN,STEP,WAIT und HALT. 
    - RUN   laufende Ausgaben
    - STEP  schrittweise Abarbeitung
    - WAIT  warten bis BreakPoint
    - HALT  Stop beim nchsten SystemAufruf
  - Fr jedes geladene Programm kann man den Modus festlegen.
  - Fr jeden Trap kann man bestimmen,ob er getraced wird.
  - Fr jede Funktion kann man den Modus festlegen.

 2.Tracer-Ausgaben
 -----------------
  - Es werden alle EingangsParameter ausgegeben.
  - Auch alle AusgangsParameter werden ausgegeben.
  - Bei allen Strukturen knnen die Elemente angezeigt werden.
  - Die meisten Parameter sind mit einer Kurzbezeichnung versehen.
  - Alle Konstanten werden im Klartext ausgegeben.
  - Dazugehrige Informationen knnen ausgegeben werden 
    - z.B. bei AES-Funktionen mit Objekten deren Typ und String
    - z.B. bei Filefunktionen mit Filehandle den Filenamen
    - z.B. bei Speicherfunktionen die Blockgre
    - z.B. bei LineA-Funktionen die zugehrigen Variablen
  - Fr jeden Aufruf kann 
    - die Rcksprungadresse
    - der Name des aufrufenden Programms
    - der Stapelzeiger
    - der Prozessormodus
    - die Funktionsnummer
    ausgegeben werden.
  - Verschachtelte Aufrufe werden durch Einrckungen kenntlich gemacht.
    (Fread hat z.B. rwabs zur Folge...)
 3.Besonderheiten
 ----------------
  - SysMon kennt verschiedene ACC-Protokolle, von DEGAS, CLIPBRD ber
    GEMINI bis zum XACC-Protokoll.
  - SysMon kennt auch die Netzwerkprotokolle und die erweiterten
    Gemdos-Funktionen.
  - SysMon ist MultiTasking tauglich, es kommt auch mit System-Aufrufen
    aus Interrupt's und mit verschiedenen MultiTasking-Systemen wie 
    z.B. dem RTX klar.
  - Das Profiling erlaubt es, die Hufigkeit von bestimmten Aufrufen
    zu zhlen.
  - Man kann ausgeben lassen, welche Aufrufe von anderen Programme
    abgefangen werden (FileSelctorBoxen...)
  - SysMon bemerkt, wenn andere Programme einen Aufruf modifizieren.
  - SysMon bemerkt, wenn sich andere Programme hinter einen Aufruf
    hngen.
 4.Trap berwachung
 ------------------
  - SysMon bemerkt Vernderungen von Traps und lt sich nicht aus den
    System-Vektoren entfernen.
  - SysMon kommt mit Programmen, die sich in die Traps hngen zurecht.
  - Es entstehen auch keine Probleme, wenn die Programme sich wieder
    entfernen.
  - SysMon kann sich selber wieder aus den Traps aushngen.


C. Ausgabe von SystemResourcen
------------------------------

 1.Programme
 -----------
  - SysMon erkennt alle geladenen Programme, auch diejenigen, die vor
    SysMon gestartet wurden.
  - Bei residenten Programmen werden auch Datenbereiche erkannt.
  - SysMon kennt alle XBRA-Kennungen und die dazugehrigen Programme.
  - Bei vorher geladenen Programmen ist sogar der Name bekannt,
    wenn das Programm eine XBRA-Kennung hat oder ein ACC ist.
 2.Speicher
 ----------
  - Die Speicherliste ist eine vollstndige Liste aller Speicherblcke.
  - Die Speicherliste enthlt auch alle residenten Bereiche.
  - Jedem Speicherbereich wird eine Kennung zugeordnet. Erkannt werden  
    - Codebereiche
    - VDI-Workstations
    - AES-Blcke
    - geladene GEM-Fonts
    - Resourcen
    - PDs
    - Enviroments
    - LineF-Handler
 3.Variablen
 -----------
  - Alle Systemvariablen von $400 - $5A0.
  - Alle (auch die nicht vom System genutzten) Traps und Vektoren
    werden mit XBRA-Ketten angezeigt.
  - Alle LineA-Variablen.
  - Alle negativen LineA-Variablen.
  - Die Font-Header aller geladenen Fonts und Systemfonts.
  - Die Program-Header/Basepages/Cartridge-Header aller Programme.
  - Die Daten aller geffneten VDI-WorkStations.
  - Der System-Header.
  - Alle Cookies, System-Cookies werden weiter aufgeschlsselt.

D. Beispiele fr die Anwendung
------------------------------
  - Stepweises Booten des Rechner's .
  - Alle Aufrufe beim Wechseln der Auflsung in das Protokollfile
    schreiben.
  - Die Funktionsweise der neuen FSelBoxen herausfinden.
  - Das Messageprotokoll zwischen GEMINI und CLIPBOARD.ACC beobachten.
  - Das 'MultiTasking' des MultiAcc's STUFFER.ACC herausfinden.
  - Feststellen, wieviel Speicher ein Programm wirklich belegt.
  - Welche Vektoren von einem Programm verndert werden.
  - Herausfinden, da der hufigste Aufruf whrend des Aufbau's des
    Desktop's der 'vsl_ustdy' Aufruf ist, wobei fr 2 gezeichnete
    'v_plines' 3 'vsl_ustdy' mit denselben Parametern benutzt werden.
  - Herausfinden, da der Desktop versucht Speicher freizugeben, der 
    ihm nicht gehrt.
  - Herausfinden, da unter bestimmten Umstnden immer derselbe 
    VDI-Handle vergeben wird. (Und daraufhin VDI_FIX schreiben :-)
  - Herausfinden, da viele Patches und Programme immer noch nicht
    das XBRA-Protokoll untersttzen.
  - Pltzlich feststellen, da ein 'Unbekannter' einen 'rw_abs' 
    Aufruf absetzt, und einen Virus im Rechner entdecken...
  - Programmfehler und Abstrze im Protokollfile dokumentieren und
    in Ruhe darber nachdenken zu knnen.
  - Den schlechten Programmierstil einiger Authoren dokumentieren
    und Ihnen das Protokollfile Ihrer 'Snden' zuschicken.

Karsten Isakovic, Mrz 90 in Berlin
