Fehlermeldungen

System Fehlermeldungen

Fehlermeldungen unter OS/2 bestehen immer aus einer Fehlernummer und einem Fehlertext. Die 3 Buchstaben kennzeichnen das Programm in dem der Fehler aufgetreten ist und die 4 Ziffern geben die Fehlernummer an.

Mit den Befehl HELP können weitere Informationen zu einer Fehlermeldung abgerufen werden.

Beispiel:

HELP SYS3175

TRAP-Fehlermeldungen

Tritt in einem Anwendungsprogramm ein Trap auf, wird dieser vom System abgefangen und entweder gesondert behandelt (z.B. durch Coprozessor-Emulation oder Swapping), oder aber das Programm abgebrochen.

Tritt der Fehler in einer Systemkomponente auf, wird das System angehalten und ein entsprechender TRAP-Bildschirm angezeigt. Anschließend muss das System neu gestartet werden.

Zusätzliche Informationen zu den Traps lassen sich über die Onlinehilfe abrufen:

Enthält der TRAP-Fehler einen Buchstaben (z.B. TRAP D), die Hexadezimale Zahl (D) in eine Dezimalzahl umwandeln und zu 1930 hinzuaddieren.

Beispiel:
TRAP D entspricht 1943, da D (hexadezimal) der Zahl 13 (dezimal) entspricht (13 + 1930 = 1943). Folglich muss HELP SYS1943 in die OS/2 Befehlszeile eingegeben werden.

Trap 0 (Divisionsfehler)

Entweder Division durch 0
oder das Ergebnis einer Division ist zu groß

Trap 1 (Debug Exeption)

Ein Programm versucht den Single-Step Interrupt einzuschalten, ohne unter Kontrolle eines Debuggers zu arbeiten. Der Programmierer der Software hat vergessen, Debug-Code aus der Anwendung zu entfernen.

Trap 2 (Nonmaskable Interrupt)

Ein nicht behebbarer, schwerwiegender Fehler ist aufgetreten. Im Gegensatz zu den anderen Interrupts kann der NMI von keiner Soft- oder Hardware ausgeschaltet werden. Im allgemeinen signalisiert ein TRAP0002 einen Speicherfehler, einen Fehler auf dem Motherboard oder einem Adapter oder einen DMA-Fehler. Auf manchem Rechner (etwa PS/2-Maschinen) kann der Watchdog-Timer abgelaufen sein, der die Ansprechbarkeit aller Interrupts überwacht. Hinweis: Sehr 'beliebter' Trap in Verbindung mit Soundkarten-Treibern, die DMA-Transfer benutzen.

Trap 3 (Debug Breakpoint)

Ebenfalls verursacht durch vergessenen Debug-Code. In diesem Fall versucht das Programm, den Interrupt 3 anzusprechen, ohne unter Kontrolle eines Debuggers zu arbeiten.

Trap 4 (Overflow)

Eine INT0-Instruktion wurde benutzt, ohne den entsprechenden Exeption-Handler zu installieren.

Trap 5 (Bound Range Exeeded)

Eine BOUND-Instruktion wurde benutzt, ohne den entsprechenden Exeption-Handler zu installieren.

Trap 6 (Invalid Opcode)

Eine ungültige Instruktion wurde benutzt. Außerdem wurde kein Exeption-Handler zur Verarbeitung dieser Bedingung installiert.

Trap 7 (No Coprocessor)

Eine Instruktion fuer den numerischen Koprozessor wurde benutzt, obwohl im Rechner keiner vorhanden ist und es wurde kein Exeption-Handler für diese Ausnahmebedingung installiert.

Hinweis: Dieser Fehler dürfte unter OS/2 nicht auftreten, da das System die Ausnahmebedingung selbst abfangen sollte.

Trap 8 (Double Fault)

Normalerweise tritt dieser Trap auf, wenn in der Fehlerbehandlungsroutine selbst ein Fehler aufgetreten ist. Es kann aber auch jede andere Ausnahmebedingung diesen Trap auslösen, wenn der Prozessor gleichzeitig mit einem anderen Trap beschäftigt ist.

Hinweis: Die eigentliche Ursache läßt sich dadurch nicht feststellen.

Trap 9 (Coprocessor Segment Overrun)

Speicherzugriffsfehler während der Ausführung einer Instruktion des numerischen Koprozessors.

Trap A (Invalid Task State Segment)

Ein Task-Wechsel führt zum Zugriff auf ein ungültiges Segment.

Hinweis: Dieser Fehler sollte unter OS/2 nicht auftreten.

Trap B (Segment not available)

Ein Programm versucht, auf einen Speicherbereich zuzugreifen, der nicht verfügbar ist.

Hinweis: Dieser Fehler sollte unter OS/2 nicht auftreten, da OS/2 nur ein einziges Segment verwendet.

Trap C (Stack Fault)

Interner Programmfehler: Es wurden zu viele Daten auf dem Stack abgelegt oder versucht, mehr Daten vom Stack zu holen als dort zuvor abgelegt wurden.

Trap D (General Protection Fault)

  • Zugriff auf Speicheradressen ausserhalb des erlaubten Bereichs, oder
  • Zugriff auf geschützten Adressraum,
  • Schreiben in Read-Only-Speicherbereiche,
  • ungültiger Wert im Selector oder
  • Zugriff auf Speicherbereiche mit dem Wert Null im Selector.

Hinweis: Dies ist einer der häufigsten Traps unter OS/2. Meistens handelt es sich dabei um Software-Fehler in den Anwendungen, so das der Trap von OS/2 abgefangen werden kann und es zu der "berüchtigten" Fehlermeldung SYS3175 kommt.

Trap E (Page Fault)

  • Zugriff auf eine Speicherseite, die nicht vorhanden ist,
  • das Programm ist zum Zugriff auf die Seite nicht berechtigt
  • oder die Speicherseite ist zwar alloziert, aber noch nicht bereitgestellt.

Ein Page-Fault (Seitenfehler) sollte von OS/2-Programmen durch, vom System zur Verfügung gestellte Mechanismen (Guard Page) abgefangen werden.

Trap F (Reserved)

Von Intel reservierter Trap.

Trap 10 (Coprocessor Error)

Ein Fehler im numerischen Koprozessor ist aufgetreten.