Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
AmiBlitz3 : Includes zu .ab3 konvertiert
#1
Hallo Thilo,

Ich hatte gestern einen ganz seltsamen absturz beim beenden von Ab3 mit verwertbaren Offsets.
Angeblich ist das clipboard schuld, aber ich denke eher es liegt an was anderen. siehe weiter unten...

Kernel command line: debuglevel=1

Registers pointing to code:
r0 : native kernel module Kickstart/kernel+0x00021c88
r7 : native kernel module Kickstart/dos.library.kmod+0x00752a54
r8 : native kernel module Kickstart/dos.library.kmod+0x0002e688
r11: native kernel module Kickstart/kernel+0x009b6876
r21: native kernel module Kickstart/kernel+0x00a50000
r31: native kernel module Kickstart/kernel+0x009b6876
ip : module DEVS:clipboard.device at 0x7FBACDF8 (section 4 @ 0x1DD4)
lr : native kernel module Kickstart/kernel+0x00021c88
ctr: native kernel module Kickstart/kernel+0x0001c908

Stack trace:
(0x5fbbfef0) module DEVS:clipboard.device at 0x7FBACDF8 (section 4 @
0x1DD4)
(0x5fbbff10) native kernel module Kickstart/kernel+0x00021c88
(0x5fbbff50) native kernel module Kickstart/ramlib.kmod+0x0000150c
(0x5fbbffb0) native kernel module Kickstart/kernel+0x000232ac
(0x5fbbffc0) native kernel module Kickstart/kernel+0x0005bff4

Disassembly of crash site:
7fbacde8: 90010024 stw r0,36(r1)
7fbacdec: 83c30010 lwz r30,16(r3)
7fbacdf0: 93a10014 stw r29,20(r1)
7fbacdf4: 3ba00000 li r29,0
>7fbacdf8: a01e0020 lhz r0,32(r30)
7fbacdfc: 83fe0074 lwz r31,116(r30)
7fbace00: 2f800000 cmpwi cr7,r0,0
7fbace04: 7fe3fb78 mr r3,r31
7fbace08: 419e0030 beq- cr7,0x7FBACE38
7fbace0c: 881e000e lbz r0,14(r30)
Stack pointer (0x5fbbfef0) is inside bounds
Redzone is OK (4)

68k register dump
DATA: 612c61d0 00010000 0001ffff 00000100 00000000 0000000a 0000006c
fffffffe
ADDR: 6057b450 6057b3d0 5ba310e4 5dba630c 5bafb324 5be53f19 021b6876
5fbbffda
----> 5dba630c - "Blitz3:System/PED_Beta" Hunk 0000 Offset 0000030c
(SegList: 0x176e9801)
----> 021b6876 - "Kickstart/kernel" Hunk 0001 Offset 00156876
Page information:
Page not found


Und als ich mir das .dbgfile ansah viel mir folgendes auf:

ein verwertbarer Offset war dann allerdings die asl.include
0000D30C <asl.include.ab3@355> XINCLUDE "asl.include.bb2"

Die clipboard.include war also nur der verursacher das anstatt asl.include.ab3 die asl.include.bb2 geladen werden sollte. Und das ging in die Hose weils die schon seit einiger Zeit nicht mehr gibt. Genauso wie die Clipboard2.include.bb2 (steht im aktuellstem Pedsource aus der Distro so drin)

Ich habe auf jeden Fall nun alle (und ich meine den kompletten Ordner Includes außer Ntui!) auf .ab3 umgestellt.

Bevor ich das nun comitte stellt sich die Frage ob es nicht besser wäre die alten .bb2/ab2 im Ordner Includes nicht einen eigenen Unterordner zu spendieren damit sowas nicht mehr vorkommt. Oder besser noch gleich ganz rausnehmen weil an den Dingern dann eh keiner mehr was macht ?

Ich nehme an, du müßtest dann Ntui auch aktualisieren....

Sag mal wie du das haben möchtest...
Zitieren
#2
Verstehe ich nicht ganz auf was du hinaus willst.

Gundsätzlich kann man alle Includes in .ab3 konvertieren. Geht dann nicht mehr unter BlitzBasic2 und Amiblitz2, da dort keine nicht-tokenisierten Includes unterstützt werden (also nur .bb2, kein .ab2 oder .ab3). Mir persönlich ist das aber egal, da ich nur noch Amiblitz3 nutze und auch beim Schreiben von neuen Includes Amiblitz3 Features benutze. Deshalb sind auch alle neuen Includes .ab3. Die alten hatte ich keine Notwendigkeit gesehen, es sei denn ich fasse sie an, denn beim .ab3 Format hat man den (!rießen!) Vorteil einen SVN Diff machen zu können.

asl.include Zeile 355 steht ein "Next" von einer For-Schleife. Kann mir nicht vorstellen wie das crashed. Und warums sollte sich PED beim beenden in diesem Code aufhalten, der wird nur ausgeführt wenn du gerade eine File ausgewählt hast.

Wenn du die .ab3 Files erzeugst (hoffe du hast das nicht händisch per PED gemacht, dann tut jetzt deine Hand weh...), dann lösche die .bb2 bitte um keine Verwirrung zu stiften. Sourcecode muss nicht angepasst werden, da der Amiblitz Compiler automatisch nach alternativen sucht wenn z.b. asl.include.bb2 nicht gefunden wird. Hätte ich nicht so gemacht, aber Bernd wollte das damals so weil es ihm zu viel Arbeit bedeutet hätte, .bb2 zu .ab3 zu ändern.
Zitieren
#3
Achso, Ab3 sucht sich selbst das nächste file aus das gerade passt ?
Das ist aber unschön finde ich...Wie ist denn da die Reihenfolge ?

Nehmen wird mal an im Source steht asl.include.bb2, das exestiert nicht, und wurde zu asl.include.ab2 konvertiert. Also würde Ab3 dann asl.include.ab2 verwenden.
Dann hat sich Thilo aber entschieden asl.include.ab3 zu erstellen und nuzt nun nur noch ausschließlich diese Include zum weiterentwickeln.

Ich gehe nicht davon aus das AB3 dann so schlau ist und anstatt asl.include.bb2 die neuste asl.include ab3 nimmt obwohl auch eine asl.include.ab2 exestiert oder ?

Die Includes die ich nun gewandelt habe, sind nun alle auf .ab3 geändert, da kann es gar nicht vorkommen das ein .bb2/ab2 file dazugeladen wird...

was das löschen der .bb2 files angeht, die sind doch noch für Leute interessant die BB oder Ab2 nutzen, warum soll ich sie dann löschen ?
Zitieren
#4
Die Suchreihenfolge ist:

[ab3]Function.l ab3_GetIncludeLock{filename.s}
incLock.l = Lock_ (&filename,#ACCESS_READ) ; try bla.blub
ex.s = dos_GetExt{filename}

If incLock = False
filename = dos_SetExt{filename,"ab3"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.ab3
End If

If incLock = False
filename = dos_SetExt{filename,"ab2"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.ab2
End If

If incLock = False
filename = dos_SetExt{filename,"bb2"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.bb2
End If

If incLock = False
filename = dos_SetExt{filename,ex+".ab3"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.blub.ab3
End If

If incLock = False
filename = dos_SetExt{filename,"ab2"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.blub.ab2
End If

If incLock = False
filename = dos_SetExt{filename,"bb2"}
incLock = Lock_ (&filename,#ACCESS_READ) ; try bla.blub.bb2
End If

Function Return incLock
End Function[/ab3]

Ich fine das auch nicht schön. Aber Bernd wollte das so.
Eine idee wäre, beim XINCLUDE die extentions ganz wegzu lassen. also
[ab3]XINCLUDE "image"
XINCLUDE "error"
XINCLUDE "dos"[/ab3]
Grundsätzlich DARF aber nur eine Version installiert sein. Sonst kommt auch der HelpIndex durcheinander und findet alles doppelt. D.h. wenn du .ab3 eincheckst, lösche auf jedenfall gleichzeitig die .bb2.
Zitieren
#5
Ja, werde morgen die Includes hochjagen und die alten bb2 und ab2 löschen.
Thomas meint auch das wäre das beste. Wenn jemand die alten Includes dann nehmen muß/will kann er sie immer noch aus dem SVN runterladen, oder die bestehenden einfach wieder zurückkonvertieren...
Zitieren
#6
Ok, die Includes sind hochgeladen...

Jetzt geh ich erstmal in die Heia :o Big Grin
n8
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste