atari-home.de - Foren

Software => Software (16-/32-Bit) => Thema gestartet von: Ektus am Fr 22.04.2011, 00:33:01

Titel: Probleme mit 68060 und Cat
Beitrag von: Ektus am Fr 22.04.2011, 00:33:01
Hallo Leute,


ich versuche gerade, auf meinem CT63 Falcon mit CTPCI meine MausTausch-Umgebung mit Cat einzurichten. Dabei mußte ich leider feststellen, daß Cat bei manchen Outfiles beim Einfügen derselben abstürzt. Dieselben Outfiles lassen sich auf dem anderen Falcon mit 030er problemlos einfügen.

Ist Cat irgendwo nicht 060-fest?

Am Betriebssystem liegt es nicht, das Problem tritt sowohl unter MagiC als auch unter MiNT auf. Cache ausschalten hilft auch nicht.


Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Arthur am Fr 22.04.2011, 01:15:51
Vielleicht am Speicher...TT-RAM, Alternate-RAM, ST-RAM? Ne andere Frage ist...gibt es davon die sourcen bzw wird das noch weiter gepflegt? Benutzt du beides mal die selbe MiNT-Version?
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Fr 22.04.2011, 06:31:11
Vielleicht am Speicher...TT-RAM, Alternate-RAM, ST-RAM?

Ziemlich unwahrscheinlich. Die Programmflags sind gleich gesetzt, beide Rechner haben ST-RAM und TT-RAM.

Ich hab' mal die Programmflags beide auf ST-RAM gesetzt, der Fehler tritt genauso auf. Address Fault $00266E2, USP $002662E6, Basepage $010A2D6C, PC $0020D2FA.

Ne andere Frage ist...gibt es davon die sourcen bzw wird das noch weiter gepflegt? Benutzt du beides mal die selbe MiNT-Version?

Rechner 1: Falcon mit Centurbo 2A, 68030 @ 50MHz, 16+32MB RAM, MagiC: Import funktioniert

Rechner 2: Falcon mit CT63, 68060 @ 100MHz, 16+512MB RAM, MagiC oder MiNT: Import führt zu crash.

Exception #2: Access fault. PC=$014F992A, Basepage: $010A2D6C, CACR $A0808000, Address fault: $01552912, FSLW 00812888, SSP $014617EE, USP $01552916

Hmmm... Stack underflow?

Die Sourcen von Cat sind im MiNT CVS.

homepage: http://www.dimitri-junker.de/html/body_cat_de.html

CVS web access: http://highwire.atari-users.net/cgi-bin/cvsweb/?cvsroot=CAT&sortby=date

Theoretisch wird es auch noch weiter gepflegt, ich muß mal noch in der Newsgroup nachfragen, aber Dimitri hat nur MagiC-PC und kann daher solche Fehler nicht reproduzieren, wenn sie CPU-spezifisch sein sollten.

Leider ist Cat vor Jahren von einer menschenlesbaren Programmiersprache (Modula 2) auf eine maschinenlesbare (C) umgestellt und damit meinen Programmierfähigkeiten entzogen worden...


Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Arthur am Fr 22.04.2011, 06:43:57
Leider ist Cat vor Jahren von einer menschenlesbaren Programmiersprache (Modula 2) auf eine maschinenlesbare (C) umgestellt und damit meinen Programmierfähigkeiten entzogen worden...

Evtl. wird es genau deshalb noch gepflegt.... Ich drück dir die Daumen. Ein Standard ist leider nicht immer das Beste sondern oft das am meisten Verbreitete. Ahhh...wo ist denn da nur die Logik. :P
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Sa 23.04.2011, 17:33:14
So, ich habe Antwort von Dimitri erhalten. Er kann derzeit leider nicht helfen, weil er noch bis 28.05. nicht im Lande ist und seine Mail auf dem PDA abruft. Auch danach braucht er noch Info von mir, daher die Frage:

Kann man (als Laie) auf dem 060er sinnvolle Debugausgaben bekommen, am Besten den  Pure Debugger mitlaufen lassen und so herausfinden, wo genau der Fehler passiert?

Mit freundlichen Grüßen
Ektus.

Titel: Re: Probleme mit 68060 und Cat
Beitrag von: m0n0 am Sa 23.04.2011, 18:41:25
Für welchen compiler is CAT denn konzipiert? Wenn es GCC sein sollte, dann wirst Du oder jemand anderes, wohl auch GCC nehmen müssen um den Fehler mit einem Debugger abzufangen, so das man auch etwas mit den dann verfügbaren Infos etwas anfangen kann. Ausserdem muss das Programm mit dem -g flag kompiliert sein.... ( fügt debug Symbole zum Programm). 

Es ist also nicht trivial... die sourcen müssten neu kompiliert werden, sofern das Programm ohne Debug Symbole ausgeleifert wird ( trifft auch auf die PureC version zu, falls die Sourcen für PureC gedacht sind). Aber es ist immer gut wenn jemand weiss wie man CAT kompilieren kann ;)

Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Sa 23.04.2011, 20:18:56
Für welchen compiler is CAT denn konzipiert?

PureC.

Wenn es GCC sein sollte, dann wirst Du oder jemand anderes, wohl auch GCC nehmen müssen um den Fehler mit einem Debugger abzufangen, so das man auch etwas mit den dann verfügbaren Infos etwas anfangen kann. Ausserdem muss das Programm mit dem -g flag kompiliert sein.... ( fügt debug Symbole zum Programm). 

Es ist also nicht trivial... die sourcen müssten neu kompiliert werden, sofern das Programm ohne Debug Symbole ausgeleifert wird ( trifft auch auf die PureC version zu, falls die Sourcen für PureC gedacht sind). Aber es ist immer gut wenn jemand weiss wie man CAT kompilieren kann ;)


Meine Kenntnis dessen beschränkt sich auf den Aufruf des entsprechenden Menüpunktes oder "make all" und Konsorten in einer Shell :-(

Ich habe Cat glaub' ich schon mal selber compiliert, CVS checkout kriege ich so grade noch hin. Aber bei den Compiler- und Linkerflags hört es dann schon auf, zumal die wohl noch in verschiedenen Dateien versteckt sind, zusätzlich zu den globalen Einstellungen in PureC.

Ein problemaulösendes Outfile habe ich schon in maus.tausch.cat gepostet.


Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Sa 23.04.2011, 22:32:10
PureC habe ich als Original hier, und mit den Patches von Dimitri sollte der Pure Debugger auch unter MagiC laufen. Theoretisch auch auf dem 2. Bildschirm (Videl), während das zu untersuchende Programm auf der Grafikkarte läuft. Hat das schonmal wer erfolgreich praktiziert? Ich habe vorhin das gepatchte PD.PRG gestartet, aber der LCD Bildschirm hat auf dem Videl-Anschluß daraufhin nichts mehr angezeigt und der Rechner wurde unbedienbar :-(
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am So 24.04.2011, 15:27:35
So, wieder ein Schritt weiter, aber der Lösung keinen Schritt näher :-(

Der Fehler tritt auch unter TOS auf. Also mit Control gestartet, PureC aufgerufen, Debuginfo aktiviert, Resource- und INF-Dateien kopiert und im Debugger gestartet. Der Import endet wieder mit Busfehler, der Debugger zeigt auf eine Funktion strCpy und findet keinen Quelltext dazu.

Und nun?
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: m0n0 am So 24.04.2011, 17:09:11
Hallo, achso, ja, man kann natürlich auch mit PureC debuggen, ich dachte das geht nicht - weil es sich um eine 060er Version von CAT handelt. Ausserdem, wenn CAT mit gcc kompiliert wurde, kann man die Symbole (Funktionsnamen, Variablennamen) nicht in PureC sehen, sondern nur assembly code.

Zitat
Der Import endet wieder mit Busfehler, der Debugger zeigt auf eine Funktion strCpy und findet keinen Quelltext dazu.

Das deutet eher darauf hin das es sich doch um mit PureC kompilierten Quelltext handelt, aufgrund des Funktionsnamens. Hm,... ich würde sagen, du musst den Quelltext erst laden, irgendwo ist da ne Menüoption in PD - aber du musst natürlich wissen welche Datei zu laden ist. Oder in main.c anfangen, oder so ;)

Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am So 24.04.2011, 17:48:28
Hallo, achso, ja, man kann natürlich auch mit PureC debuggen, ich dachte das geht nicht - weil es sich um eine 060er Version von CAT handelt.

Es handelt sich um eine 68000er Version. Nur die CPU ist 68060.

Ausserdem, wenn CAT mit gcc kompiliert wurde, kann man die Symbole (Funktionsnamen, Variablennamen) nicht in PureC sehen, sondern nur assembly code.

Zitat
Der Import endet wieder mit Busfehler, der Debugger zeigt auf eine Funktion strCpy und findet keinen Quelltext dazu.

Das deutet eher darauf hin das es sich doch um mit PureC kompilierten Quelltext handelt, aufgrund des Funktionsnamens.
Ja, ist PureC. Schrieb ich das nicht schon?
Hm,... ich würde sagen, du musst den Quelltext erst laden, irgendwo ist da ne Menüoption in PD - aber du musst natürlich wissen welche Datei zu laden ist. Oder in main.c anfangen, oder so ;)
Das dürfte eine Standardfunktion sein, die an sich nicht für den Fehler verantwortlich ist, sondern mit einem fehlerhaften Parameter aufgerufen wird. Nur von wo aus? Der Pure Debugger läuft zwar, aber einige Funktionen stürzen ab :-(
Den Quelltext habe ich natürlich, und auch mit Debuginformation compiliert. Aber dieser Teil ist scheinbar nicht im Quelltext.

Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: gstoll am So 24.04.2011, 19:12:43
Aber dieser Teil ist scheinbar nicht im Quelltext.
Doch er befindet sich in "lib/ro/ros_cpy.c". strCpy ist im Prinzip ähnlich der Standardfunktion strcpy, nur das ein paar Sicherheitsabfragen drin sind.

Ansonsten, wie an anderer Stelle schon geschrieben "View/Stack" zeigt die Abarbeitungsreihenfolge.

Gerhard
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am So 24.04.2011, 20:08:53
Aber dieser Teil ist scheinbar nicht im Quelltext.
Doch er befindet sich in "lib/ro/ros_cpy.c". strCpy ist im Prinzip ähnlich der Standardfunktion strcpy, nur das ein paar Sicherheitsabfragen drin sind.

Ansonsten, wie an anderer Stelle schon geschrieben "View/Stack" zeigt die Abarbeitungsreihenfolge.

Gerhard
Ja, Danke. Nachdem Du hier auch mitliest, sollen wir die Fehlersuche hier konzentrieren? Oder lieber in der Mausgruppe?

Ich starte Cat im Debugger aus PureC mit dem Projektfile Cat.prj. Ist das die richtige Methode? Im Debugger werden mir nur BIOS.S, GEMDOS.S, IDN_CMD.C, MINT.S, NFKC.C, PUNYCODE.C, STRINGP.C, TOUTF8.C und XBIOS.S angezeigt, wobei alle außer Punycode bei Doppelclick ein "File not found" produzieren :-(

Der Busfehler scheint ganz am Anfang von strCpy zu passieren, der Debugger zeigt auf die erste Anweisung "MOVE.L A2, -(A7)", die sich beim letzten Lauf an der Adresse $01C45D3C befand. Text bei $1BB052, Länge $0A06EE, Data $1C50C1, Länge $039AE6, BSS $1C8A6F, Länge $014F8A.

Mit "View CPU" friert der Rechner ein :-(

Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: afalc060 am So 24.04.2011, 21:03:06
Ich bin nicht der C mensch, aber sollten die pfade nicht stimmen, damit die files gefunden werden?

MOVE.L A2, -(A7)
da wird eine adresse auf dem stapel abgelegt
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: gstoll am So 24.04.2011, 22:25:28
Ich starte Cat im Debugger aus PureC mit dem Projektfile Cat.prj. Ist das die richtige Methode?
Ja, das ist richtig

Wenn wie Du schreibst die Module ("View/Modules") werden nicht angezeigt, dann hast Du entweder die Compiler- und Linkereinstellungen zum anhängen der Debuginformation nicht gesetzt oder Du hattest einen Compilerlauf ohne dies Einstellung und Du mußt das nochmal wiederholen.
Also noch schauen ob alles Einstellungen sitzen und ein "Project/Make all" machen und dann den Debugger starten.

Der Busfehler scheint ganz am Anfang von strCpy zu passieren, der Debugger zeigt auf die erste Anweisung "MOVE.L A2, -(A7)",
Dann ist der Stack kaputt, denn das ist die erste Anweisung und nur zum retten des Registers A2.

Mit "View CPU" friert der Rechner ein
Mmh, der PD ist nicht ganz 060 fest. Du könntes mal von der Medusa Computer Systems (http://www.medusacomputer.com/thes-download.html) Homepage das Archiv Hadessh.zip laden. Da befindet sich ein gepachter PD für 060. Keine Ahnung ob es was bringt.

Gerhard
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: ragnar76 am So 24.04.2011, 23:44:41
da gibt es keine index datei. hier ist der direkte link : Hadessh.zip (http://www.medusacomputer.com/program/Hadessh.zip)
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Mo 25.04.2011, 08:45:30
Ich starte Cat im Debugger aus PureC mit dem Projektfile Cat.prj. Ist das die richtige Methode?
Ja, das ist richtig

Wenn wie Du schreibst die Module ("View/Modules") werden nicht angezeigt, dann hast Du entweder die Compiler- und Linkereinstellungen zum anhängen der Debuginformation nicht gesetzt oder Du hattest einen Compilerlauf ohne dies Einstellung und Du mußt das nochmal wiederholen.
Also noch schauen ob alles Einstellungen sitzen und ein "Project/Make all" machen und dann den Debugger starten.
Das habe ich mehrmals hinter mir, hat aber an der Dateigröße von CAT.PRG nichts mehr geändert.
Der Busfehler scheint ganz am Anfang von strCpy zu passieren, der Debugger zeigt auf die erste Anweisung "MOVE.L A2, -(A7)",
Dann ist der Stack kaputt, denn das ist die erste Anweisung und nur zum retten des Registers A2.
Nur - wer oder was hat den Stack kaputt gemacht?  ???
Mit "View CPU" friert der Rechner ein
Mmh, der PD ist nicht ganz 060 fest. Du könntes mal von der Medusa Computer Systems (http://www.medusacomputer.com/thes-download.html) Homepage das Archiv Hadessh.zip laden. Da befindet sich ein gepachter PD für 060. Keine Ahnung ob es was bringt.
Das Archiv habe ich gefunden. Diese Version läuft mehr schlecht als recht. Auf der Grafikkarte unbenutzbar, auf dem Videl zwar keine Abstürze aber heftige Redrawprobleme. Immerhin ist die Liste der Module komplett, und ich kann aus der Stack-Liste die Quelltexte aufrufen  8)
Der Aufruf von strCpy kommt aus MIME.C Zeile 1135:
strCpy(partAddr+old,zeile); /*ich will es ohne folding */

So, was nun?

[edit]
Aussage von Dimitri:
Zitat
Das würde ja bedeuten, daß strCpy eine ungültige Adresse bekommt. Eine Übergabe von Null wird im Gegensatz zu strcpy abgefangen. Die wahrscheinlichste Ursache ist eine nicht initialisierte Variable. Also einfach mal im Aufrufstack hochgehen und schauen was nicht initialisiert wird. Einfach mit Null initialisieren behebt wahrscheinlich den Absturz, aber ein Fehler tritt wahrscheinlich immer noch auf. Aber damit könntest Du wahrscheinlich den Monat bis zu meiner Rückkehr auskommen. Es ist sehr schwer, das Problem mit gespliteten Mails die in mehreren Tauschs kommen in Cat zu lösen. Am besten wäre ein IO-Filter.

Mit freundlichen Grüßen
Ektus.
Titel: Re: Probleme mit 68060 und Cat
Beitrag von: Ektus am Mi 22.06.2011, 22:08:49
Die neuesten Erkenntnisse aus der Fehlersuche:

DJ>Was Du noch versuchen kannst ist den Wert von A7 markieren, dann
DJ>View/Dump aufrufen, dann mußte die Adresse da stehen, wenn nicht per
DJ>Hand abtippen. Dann müßtest Du einen Dump des Stack-Bereiches sehen.
DJ>Funktioniert das? Oder stehen da überall nur 0

Das funktioniert. Da steht (> markiert aktuelle Adresse):
 0000 0000 0113 8A1E 010B 29D0 0118 E647
 0000 0000 0113 A660 0113 861E 010B 32B6
>010B 344A 0000 0001 0001 0000 0000 0072
 0000 0055 436F 6E74 656E 742D 4469 7370
 6F73 6974 696F 6E3A 2069 6E6C 696E 6500
 6173 6536 3400 6861 7273 6574 3D75 7466
 2D38 0000 0000 0000 0000 0000 0000 0000
 viele Zeilen mit 0000 0000 0000 0000

PC $010E1A46
D0 $55
D1 $0
D2 $54
D3 $0
D4 $FFFFFFFF
D5 $0
D6 $1
D7 $B
ISP $0104A498
SFC $4
CACR $A0808000
VBR $0
SR tsI3xnzvc
A0 $0118E858
A1 $0113861E
A2 $0118E647
A3 $0
A4 $0113A660
A5 $0113861E
A7 $0113860A (oben im Dump mit > markiert)
MSP $010493AE
DFC $0
PCCR $04300601
FPSR $0
FP0, FP1, FP2=Nan

Der Fehler ist immer an derselben Stelle, am Anfang von strCpy.



Leider noch keine Lösung in Sicht. Warum gibt es den Busfehler?


mit freundlichem Gruß aus Ahornberg
 Ekkehard