Assembler Error

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Assembler Error

Beitrag von Lebostein »

Hallo,

nach einer größeren Umstrukturierungsmaßnahme in einem Programm (von Arrays auf Listen) bekomme ich beim kompilieren folgende Fehlermeldung:

Bild

Ich verwende weder Inline-Assembler noch hab ich die Assembler-Unterstützung aktiviert. Habt ihr so einen Fehler schon mal gesehen?
Das dumme ist, der Debugger sagt nichts dazu, das Programm wird mit dieser Meldung einfach beendet, also kann ich auch nicht lokalisieren, wo der Fehler liegt...
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Re: Assembler Error

Beitrag von freedimension »

Lebostein hat geschrieben:Das dumme ist, der Debugger sagt nichts dazu, das Programm wird mit dieser Meldung einfach beendet, also kann ich auch nicht lokalisieren, wo der Fehler liegt...
Wenn ich die Fehlermeldung richtig interpretiere kannst du das schon. Der Fehler müsste in Zeile 2560 des erzeugten ASM-Outputs sein.
Am Besten du erzeugst eine ASM-Datei mit dem Kommandozeilenswitch /COMMENTED, kompilierst diese von Hand und schaust die Fehlermeldung nochmal an.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Hab grade mal ne Menge Code rausgeschmissen und ausprobiert. An dieser Zeile hängt er sich auf:

Code: Alles auswählen

SetGadgetText(#Menu_Edit_Verb_mx, Str(glob()\menu\wide[0]\valx))
Die Verwendeten Strukturen sehen so aus:

Code: Alles auswählen

Structure v
  valx.w           ; x-Wert
  valy.w           ; y-Wert
EndStructure

Structure c
  colr.w           ; Rote farbe
  colg.w           ; Grüne Farbe
  colb.w           ; Blaue Farbe
EndStructure

Structure menu
  name.s           ; Name des Menus
  text.s[09]       ; Text der Verben
  pref.v[05]       ; Referenzpunkte 
  wide.v[03]       ; Breite der Bereiche
  posi.v[12]       ; Position der Bereiche
  pals.c[15]       ; Palette
  face.b[09600]    ; GUI-Bitmap
  verb.b[01800]    ; Verb-Bitmap
  move.b[00900]    ; Scroll gedrückt
  stop.b[00900]    ; Scroll deaktiviert
  maus.b[00240]    ; Mauszeiger Standard
  user.b[00240]    ; Mauszeiger kombinieren
EndStructure

Structure glob
  ...
  menu.menu
  ...
EndStructure
Die Liste wurde so angelegt:

Code: Alles auswählen

NewList glob.glob()
AddElement(glob())
Was soll den daran falsch sein.....
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Hab grade mal die Zeile durch folgenden Code getauscht:

Code: Alles auswählen

glob()\menu\wide[0]\valx = 5            ...keine Probleme....

Debug glob()\menu\wide[0]\valx          ...es wird 5 ausgegeben....

Debug Str(glob()\menu\wide[0]\valx)     ...Programm stürzt ab....
:?: :?: :?:
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Mach mal folgendes:

Code: Alles auswählen

; aus
SetGadgetText(#Menu_Edit_Verb_mx, Str(glob()\menu\wide[0]\valx))

; mach
dummy.l = glob()\menu\wide[0]\valx);
SetGadgetText(#Menu_Edit_Verb_mx, Str(dummy.l))
Ist zwar nicht toll, könnte aber vielleicht helfen.

EDIT: Ach ja, wieviele dieser Strukturen werden denn gleichzeitig eingesetzt? Wenn es wenige sind, kommst du billiger weg wenn du gleich den Long-Typ verwendest, die 4 Byte machen nicht wirklich was aus.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

So, für alle zum Testen:

Code: Alles auswählen

Structure v
  valx.w           ; x-Wert
  valy.w           ; y-Wert
EndStructure

Structure c
  colr.w           ; Rote farbe
  colg.w           ; Grüne Farbe
  colb.w           ; Blaue Farbe
EndStructure

Structure a
  maxi.w           ; Maximalwert der Animation
  tick.w           ; Zeitschritt
EndStructure

Structure anim
  name.s           ; Name der Figur
  pref.v           ; Referenzpunkt
  talk.a           ; Redeanimation
  walk.a           ; Gehanimation
  pals.c[16]       ; Palette
  head.b[13824]    ; Kopfbitmap
  body.b[34560]    ; Körperbitmap
EndStructure

Structure menu
  name.s           ; Name des Menus
  text.s[09]       ; Text der Verben
  pref.v[05]       ; Referenzpunkte 
  wide.v[03]       ; Breite der Bereiche
  posi.v[12]       ; Position der Bereiche
  pals.c[15]       ; Palette
  face.b[09600]    ; GUI-Bitmap
  verb.b[01800]    ; Verb-Bitmap
  move.b[00900]    ; Scroll gedrückt
  stop.b[00900]    ; Scroll deaktiviert
  maus.b[00240]    ; Mauszeiger Standard
  user.b[00240]    ; Mauszeiger kombinieren
EndStructure

Structure glob
  anim.anim
  menu.menu
EndStructure

NewList glob.glob()
AddElement(glob())

glob()\menu\wide[0]\valx = 5
Debug glob()\menu\wide[0]\valx
Debug Str(glob()\menu\wide[0]\valx)
Wer findet den Fehler?

EDIT: wenn ihr 'anim.ainm' in der glob-Struktur auskommentiert, funktioniert es... aber warum?
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Wenn man die glob-Struktur rumdreht, geht's plötzlich:

Code: Alles auswählen

Structure glob 
  menu.menu 
  anim.anim 
EndStructure
Da ist was faul in den tiefen von PureBasic :o
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

probier mal aus den words

Code: Alles auswählen

Structure v
  valx.w           ; x-Wert
  valy.w           ; y-Wert
EndStructure
integers zu machen

Code: Alles auswählen

Structure v
  valx.l           ; x-Wert
  valy.l           ; y-Wert
EndStructure
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Ich würde sagen, Workaround schön und gut, aber erstmal ab damit an
Fred, das ist ja wohl ein ziemlich eindeutiger PB Bug.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

...ist schon gestern Nachmittag geschehen..

Fred scheint aber nicht da zu sein, sein letzter Post im engl. Forum geht auf den 26.10. zurück.... er wird schon wieder auftauchen :)
Antworten