Foutmeldingen onder OS/2

> OS/2 Index <

Inhoud

Popuplog.os2

SYS(nnnn) foutmeldingen

Trap errors

APARs

Een computer is een complexe zaak. Als de programmatuur het naar uw wens doet, mag u van geluk spreken. Maar op een zeker moment zullen de zaken toch anders lopen dan u of de programmeur bedoelde. Foutmeldingen kunnen u dan helpen om te achterhalen wat er nu eigenlijk mis ging.

Cli programma's loggen

Sommige programma's loggen niet naar het beeldscherm, maar wel naar een bestand.

start "Thunderbird" /C PRIORITY 1 31 "THUNDERBIRD!L.EXE >> i:\var\log\tbird.log 2>&1" 

Logbestanden bekijken

In de map \ibminst\logs\ kunt u logbestanden bekijken. Deze zijn vooral van belang bij netwerk configuratie- en installatieproblemen. Zie Debuggen in de netwerksectie.

Popuplog.os2

> Top <

In de root van de bootschijf bevindt zich het bestand POPUPLOG.OS2. Hier vindt u informatie uit het Pop-up menu dat in OS/2 in beeld brengt als programma's zich misdragen. Sinds OS/2 Warp 3 FP29 wordt het standaard aangemaakt op OS/2's bootpartitie.

De uitgebreide registerinformatie is m.n. bedoeld voor de programmeurs, maar u kunt er ook uw voordeel mee doen, al was het alleen maar om te bezien welke programma's bij u de problemen veroorzaken. Bij mij heeft bijvoorbeeld Netscape op 05-24-1998 een SYS3175 fout gemaakt.


05-24-1998 22:14:21 SYS3175 PID 0033 TID 0001 Slot 005d
I:\NETSCAPE\NETSCAPE.EXE
c0000005
0007875a
P1=00000001 P2=0000000c P3=XXXXXXXX P4=XXXXXXXX
EAX=00000000 EBX=012880b0 ECX=012143d0 EDX=00000002
ESI=ffffffff EDI=01288300
DS=0053 DSACC=d0f3 DSLIM=1fffffff
ES=0053 ESACC=d0f3 ESLIM=1fffffff
FS=150b FSACC=00f3 FSLIM=00000030
GS=224b GSACC=10f3 GSLIM=00003fff
CS:EIP=005b:0007875a CSACC=d0df CSLIM=1fffffff
SS:ESP=0053:00484ca0 SSACC=d0f3 SSLIM=1fffffff
EBP=00484ccc FLG=00012202

NETSCAPE.EXE 0001:0006875a


Deze informatie is vooral voor programmeurs interessant. Aan de andere kant geeft het u wel exacte informatie waarmee u gerichter in de de Google OS/2 nieuwsgroepen naar oplossingen kunt zoeken.

Enige zaken zijn wel snel te achterhalen:

De fout trad op 05-24-1998 22:14:21 op, zij betrof Netscape.exe, die op dat moment als Process ID 33 liep.

Tail

Met het UNIX (emx) utility tail kunt u de foutmeldingen dynamisch in een OS/2 venster volgen (-f of--follow):

RC:0 [eCS]F:\->tail -f popuplog.os2
DS=0053  DSACC=d0f3  DSLIM=7fffffff
ES=0053  ESACC=d0f3  ESLIM=7fffffff
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:1f9f7550  CSACC=d0df  CSLIM=7fffffff
SS:ESP=0053:001a7b2c  SSACC=d0f3  SSLIM=7fffffff
EBP=001a7b60  FLG=00012206

PMMERGE.DLL 0004:000b7550

Een popuplog.cmd kan zijn:

mode co80,43
tail -f -n 42 f:\popuplog.os2

Tail (Engels voor staart) laat de laatste (n) regels van het logbestand zien. Met de optie -f of -- follow wordt het beloop gevolgd. Tail is vooral handig voor het volgen van de geopende logbestanden van webservers en de syslog deamon:

mode co132,50
tail -f -n 50 %ETC%\syslog.msg

En dan blijkt dat het internet best wel gezellig kan zijn.

SYS(nnnn) foutmeldingen

> Top <

De betekenis van SYS(nnnn) foutmeldingen kunt u opsporen door HELP SYS(getal) op de OS/2 prompt te toetsen:
De berichten zullen u echter zelden veel verder helpen. Wel kunt u met deze berichten zoeken in OS/2's APAR databases die in het INF-formaat snel te doorzoeken zijn (zie APARs ).


[I:\]help SYS3175

SYS3175: Een programma in deze sessie is afgebroken als gevolg van een fout.

VERKLARING: Het laden of opslaan van gegevens op een niet-toegankelijk geheugenadres of het opgeven van een opdracht
die niet is toegestaan, resulteerde in een fout. Deze fout komt overeen met de algemene protection fault (#13) van de
Intel 80386-processor, die wordt veroorzaakt door een poging gebruik te maken van een beschermd geheugengebied en de
pagina-fault (#14), die optreedt als wordt verwezen naar een geheugenpagina die niet toegankelijk is of die niet de juiste kenmerken bevat voor het uitvoeren van de gewenste bewerking.

ACTIE: Als u het programma hebt gekocht, neemt u contact op met de leverancier. Als u het zelf hebt ontwikkeld, raadpleegt u de registergegevens.


Netscape probeerde geheugen aan te spreken dat niet aan Netscape toebehoorde. Einde Netscape sessie, want dat mag niet in een multitasking omgeving. Overigens blijft de internet verbinding in zo'n geval wel draaien, en als u meerdere TCP/IP programma's draait, dan blijven de anderen staan. Juist om dat te voorkomen werd de Netscape sessie door het systeem (CPU en OS) op de vingers getikt.

Het ging om een Global Protection Fault, die door de CPU (niet het OS!) werd gesignaleerd. Windows noemt dit een General Protection Fault. Een GPF onder Windows 3x geeft in principe een minder stabiel Windows systeem. GPF's onder OS/2 (en Win95) leiden tot het verplicht moeten afsluiten van de applicatie, waarna u gewoon kunt doorwerken. Het afsluiten van een zich misdragend programma gaat echter gemakkelijker onder OS/2 dan onder Windows 95.

Trap errors

> Top <

Trap errors zijn foutmeldingen van de Intel processor. Er bestaan 256 trap codes. Alleen de eerste 17 worden door een besturingssysteem gebruikt (zie: os2traps.txt). Op Hobbes is de "Trap error Guide v. 2.01 (26 May 1994)" te downloaden (trapinf.zip).

Trap errors die door het besturingssysteem worden veroorzaakt kunnen lelijke fouten zijn. Als ze zich in het voor de kernel (ring 0) en stuurbestanden (ring 2) gereserveerde geheugen afspelen zal het systeem vastlopen (een "trap" is een "val''). Als een gebruikersprogramma in ring 3 (gebruikersarena) het slachtoffer van een trap error is zal het door OS/2 worden onderbroken (SYS Fout). OS/2 zal de details in POPUPLOG.OS2 schrijven.

Trap fouten die OS/2 doen vastlopen zullen met het besturingssysteem zelf (fouten in hardware drivers en kernel), de OS/2 configuratiebestanden en/of defecte of instabiele hardware te maken hebben. U ziet dan een zwart scherm.

TRAP 000d       ERRCD=0000  ERACC=****  ERLIM=********                         
EAX=00000000  EBX=ffe30000  ECX=0000000f  EDX=00000000                         
ESI=00007b29  EDI=ffe1cb29  EBP=00004eea  FLG=00203246                         
CS:EIP=0148:00008ee1  CSACC=009b  CSLIM=0000a2fa                               
SS:ESP=0030:00004ebe  SSACC=1097  SSLIM=00003fff                               
DS=0400  DSACC=00f3  DSLIM=00007504  CR0=80010013                              
ES=0158  ESACC=c0f3  ESLIM=ffffffff  CR2=ffe4f000                              
FS=0000  FSACC=****  FSLIM=********                                            
GS=0000  GSACC=****  GSLIM=********                                            
                                                                               
Het systeem heeft een interne verwerkingsfout                                  
geconstateerd op adres ##0160:fff54c70 - 000d:ac70.                            
60000, 9084                                                                    
                                                                               
06860662                                                                       
Internal revision 9.023, 95/11/07

Trap 000E fouten (Page Faults) zullen het systeem abrupt doen stoppen. TRAP 000E is een geheugenfout: het virtuele geheugenadres waarnaar een programma verwijst is niet aanwezig. Aangezien OS/2 voor het virtuele geheugenbeheer verantwoordelijk is, is het overantwoord om door te gaan. OS/2 treedt onmiddellijk af. Na een reboot zult u een checkdisk tegemoet zien.

Als een trap error optreedt zult u eerst willen nagaan of de fout reproduceerbaar is. Vervolgens is het van belang om precies vast te stellen wanneer de fout zich voordoet.

Als de fout tijdens het laden van OS/2 optreedt, is de kans groot dat het om een via de CONFIG.SYS geladen stuurbestand gaat. Het laatst geinstalleerde stuurbestand is natuurlijk de eerste verdachte. Om dit te achterhalen maakt u gebruik van alternatieve bootmethoden voor OS/2.

In het trapoverzicht van de Tarp 000d fout ziet u CSLIM=000a2fa staan. Met het utility exeinfo kunt u de boosdoener soms opsporen

exeinfo -f -la2fa c:\*.*

Via de Alt-F2 methode kunt u nagaan welke stuurbestanden geladen worden.

Via Alt_F1 kunt u OS/2 in een andere configuratie booten.

Denk bij trap fouten in de grafische modus aan video drivers. Als de fout uitblijft met de gewone SVGA driver zit dat er dik in.

Trap fouten die meteen optreden na de initialisatie van de WPS kunnen ook met het Win-OS/2 subsysteem te maken hebben. Als de optie Win-OS/2 snelstarten aanstaat, wordt Win-OS/2 automatisch geladen. Hernoem OS2\MDOS\WINOS2 eens in WINOS2$ en kijk of de fout opnieuw optreedt. Ik zag dit na een herinstallatie van Win-OS/2 vanaf en Warp Connect installatie CD terwijl de rest al op fixpack 40 zat. In zo'n geval (oude componenten herinstalleren) kunt u het fixpack het best maar meteen opnieuw toepassen.

Maar de oorzaak kan ook in een defecte of een met de rest incompatibele geheugenchip liggen: haal ze er eens één voor één uit (bij parity chips) of per paar (non-parity), reboot en controleer of dat wat uitmaakt. Sommige geheugenfouten treden alleen op als de computer een tijdje aanstaat: denk dan aan defecte aarding en oververhitting.

Ook "buggy" of onjuist geconfigureerde stuurbestanden kunnen OS/2 met trap errors tot stilstand brengen. Een veel voorkomende oorzaak is het niet goed ingesteld zijn van DMA kanalen en IRQ's van de geluidskaart. Gebeurt dit na installatie van een nieuwe stuurbestand probeer dan m.b.v. de juiste parameters de driver tot orde te brengen. Ook de volgorde in de config.sys wil nog wel eens uitmaken. Lukt dit niet, dan moet u afzien van dit stuurbestand.

Met de CONFIG.SYS instelling:

SUPPRESSPOPUPS=F

onderdrukt u foutmeldingen in een pop-up menu en worden de berichten alleen naar F:\POPUPLOG.OS2 geschreven.

Na een systeemstop (trap error) kan de volgende CONFIG.SYS instelling het systeem weer laten rebooten:

REIPL=on

Deze instelling is voor servers bedoeld.

APARs

> Top <

Niet om door te lezen, maar wel handig om te doorzoeken indien u met onverklaarbare foutmeldingen komt te zitten zijn de door IBM geregistreerde foutmeldingen. Deze zogenaamde APARs (Authorized Program Analysis Report) worden als INF-bestanden door IBM vrijgegeven.

OS2APARs om eventueel op de schijf te bewaren zijn:

30apr1.inf - OS/2 Warp version 3 APARs

30apr2.inf - OS/2 Warp version 3 APARs (incl. Win-OS/2)

30apr3.inf - OS/2 Warp version 3 APARs (incl. Warp Connect, Win-OS/2, BonusPak)

40apr1.inf -OS/2 Warp version 4 APARs

mmapr1.inf - MMPM/2 Ver 1.1 APARs as of 2 Apr 1997

tcpar1.inf - TCP/IP for OS/2 Version 3.1 (Warp Server) APARs as of 2 Apr 1997



De PSP APARS DATABASE.

Ik heb de APAR's in een aparte directory gezet en een cmd-batch aangemaakt waarmee ik ze selectief kan doorzoeken. Hierbij maak ik gebruik van Mark Kimes' viewinfs.exe (onderdeel van de shareware FM/2), maar het freeware viewall kan dit ook (is wel trager o.a. vanwege het laden van een grote bitmap). U kunt zelf uw eigen variaties bedenken door het tijdelijke BOOKSHELF pad van de batch aan te passen.


REM VIEWAPAR.CMD
SET OLDBOOKSHELF=%BOOKSHELF%
:Bekijk alleen de OS2APARS
SET BOOKSHELF=I:\BOOK\APAR
SET BEGINLIBPATH=I:\OS2\DLL
PATH=I:\OS2
I:
CD\
CD FM2
START VIEWINFS
SET BOOKSHELF=%OLDBOOKSHELF%
EXIT


Deze cmd-batch moet natuurlijk ook werken vanuit een onderhoudspartitie. Vandaar dat het SET BEGINLIBPATH en het PATH zijn gedefinieerd. Dit zorgt ervoor dat OS/2 eerst in de door SETBEGINLIBPATH gedefinieerde mappen zoekt alvorens in de huidige directory (de beroemde punt aan het begin van het LIBPATH) en verder in het LIBPATH te zoeken. View.exe moet vanuit OS2 geladen worden. Vandaar het PATH=I:\OS2. De stationsletters moet u vanzelfsprekend aanpassen (bij mij was I de Warp Installatiepartitie).

> Top <
> OS/2 Index <

Frank Meilinger : OS/2 Problem Determination and Analysis (PDA)