Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-05-2005, 09:53   #1 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Absturz der Entwicklungsgebung per AS

Hallo,

ich habe wohl mit AS einen Bug produziert, der meine gesamte Entwicklungsumgebung (wenn ich es im Browser öffne, den kompletten Browsertask) abstürzen lässt. Das Problem tritt in regelmäßigen Abständen, aber nicht exakt reproduzierbar auf. Das Skript ist recht komplex, und mit der normalen Fehlersuche komme ich nicht weiter.

Deswegen meine Frage: Welche Möglichkeiten gibt es (was könnte ich fälschlicherweise in meinem Code geschrieben haben), die komplette Applikation abstürzen zu lassen? Es kommt KEINE Fehlermeldung: "Die Anwendung wurde durch das Skript verlangsamt, möglicherweise handelt es sich um eine Endlosschleife. Möchten Sie das Script abbrechen?", sondern Flash ist einfach weg.

Ein ähnliches Problem konnte ich schon reproduzieren, als ich z.B. den Befehl #include "skript.as" wiederum in der Datei 'skript.as' geschrieben habe. Diese Fehlerquelle kann ich aber soweit ausschliessen.

Wenn jemand einen Hinweis zu diesem Problem geben könnte, wäre ich sehr dankbar.

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 17-05-2005, 10:40   #2 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Noch eine Anmerkung zu dem Problem:

eine "Endlosschleife" aus #include Anweisungen kann ich sofern auch ausschliessen, weil die swf-Datei korrekt vom Kompiler ohne jegliche Fehlermeldungen erstellt wird. Erst während der Laufzeit des Skriptes stürzt der Browser bzw. die Entwicklungsumgebung ab. Hat schonmal jemand ein ähnliches Problem gehabt? Woran könnte das liegen?

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 17-05-2005, 11:56   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
offensichtlich kennt keiner dein problem. sonst hätte sich schon längstens jemand gemeldet. also selbst fehler suchen!


"..mit der normalen Fehlersuche komme ich nicht weiter.."
das glaube ich nicht! programmieren ist mühselige kleinarbeit. da geht nichts hopplahopp. schrittweisse vorgehen ist "normale Fehlersuche"

"..aber nicht exakt reproduzierbar.."
glaube ich ebenfalls nicht. du hast nur die ursache noch nicht gefunden. es gibt keine "zufälligen" fehler.


a) debuggen (siehe meine signatur)
gehe deinen quellcode schritt für schritt durch, bis es kracht. dann weisst du ja, wer der schuldige ist.

b) wenn du noch weisst, was du als letzes ergänzt hat, stück für stück wieder rausschmeissen und jeweils testen, bis der fehler nicht mehr vorkommt.

c) komplett neu machen!
geht schneller als total neu. ist die umkehrfunktion von b) stückweisse vom fehlerhaften file in ein neues file kopieren und immer wieder testen!


so läuft der programmiereraltag - ist nicht lustig.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-05-2005, 12:04   #4 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
oder lad die dateien mal hoch, dann können wir es mal testen und dir evtl. sagen, wo dein Fehler ist.
pokepika ist offline   Mit Zitat antworten
Alt 17-05-2005, 13:03   #5 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
hgseib: ja, da werd ich wohl nicht drum herumkommen. Die drei von Dir aufgeführten Möglichkeiten kenn ich recht genau, ich glaub ich werd mich mit Hilfe der Versionsverwaltung dem Ansatz b) näher widmen.

> "..aber nicht exakt reproduzierbar.."
> glaube ich ebenfalls nicht. du hast nur die ursache noch nicht gefunden. es gibt keine "zufälligen" fehler.

An zufällige Fehler glaube ich auch nicht. Nur habe ich noch keine Möglichkeit gefunden, diesen Fehler 100%ig zu reproduzieren. Nach dem Start des SWFs brauch ich nur auf einen Button zu klicken, und in einem von zehn Fällen kommt es zum Absturz. Wobei ich beobachten konnte, dass es bei höherer Prozessorauslastung häufiger auftritt.
Beim Klick auf diesen Button werden eine Menge von Aktionen ausgeführt (Login, Aufbau einer Oberfläche die wiederum aus vielen Einzelkomponenten besteht, Abruf von weiteren Daten vom Server, etc.). Sie umfasst insgesamt mehrere tausend Zeilen Code. Ich denke es ist nicht sinnvoll, dass jemand seine Zeit opfert, und sich erstmal da hinein arbeitet (@pokepika, aber trotzdem vielen Dank für Dein Angebot - außerdem handelt es sich um eine Client-Server-Anwendung, nutzen die Flash-Sourcen allein nichts).

In anderen Funktionen werden auch auf dieselben Codeteile zurückgegriffen, so dass ich augenscheinlich auch keine Fehler in meinem Skript sehen kann.

Sollte ich den Fehler ausmachen können (und das hoffe ich stark) werd ich ihn hier posten. Falls trotzdem inzwischen jemanden das Problem begegnet ist, würde ich mich trotzdem freuen, wenn er sich melden würde.

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 17-06-2005, 10:42   #6 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Hallo,

ich bin nach wie vor an dem Problem dran und konnte es einkreisen. Und zwar habe ich eine Initialisierungsfunktion die eine grafische Oberfläche mit recht vielen Elementen und Funktionalitäten erstellt. Das heißt in der Initialisierungfunktion werden wieder Unterfunktionen aufgerufen, die dann die Funktionalitäten von den verschiedenen Elementen initialisieren.

Kommentiere ich wahllos verschiedene Blöcke aus, tritt das Problem nicht mehr auf. Es sieht also so aus, als ob die Anzahl der Zeilen im Quellcode eine Rolle spielt. Dabei ist es egal, ob der Quellcode in Bereichen auskommentiert wird, die durchlaufen werden oder nicht (in meinem Fall habe ich Quellcode in einem else{}-Bereich auskommentiert, der nicht durchlaufen wird).

Um wieviele Zeilen Quelltext es sich handelt, kann ich nicht genau sagen, da diverse Funktionen (z.B. sowas wie createButton() mit ca. 25 Zeilen Quellcode häufiger aufgerufen werden) häufiger aufgerufen werden. Ich schätze es sind wohl ca. 2000-3000 Zeilen Quelltext.

Was ich auch festgestellt habe war, dass nie zu einem Absturz gekommen, wenn das SWF nach Start des Browsers zum ersten geladen wurde, bzw. wenn ich in der Entwicklungsumgebung das .fla zum ersten Mal veröffentlicht habe.
Scheinbar werden beim ersten Starten Daten im Speicher abgelegt, die beim erneuten Start nicht wieder korrekt entfernt werden. Keine Ahnung, ist halt nur eine Vermutung.

Wenn ich noch weitere Informationen zu dem Problem herausfinden sollte, werde ich das hier posten.

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 17-06-2005, 15:29   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
hast du irgendwann etwas mit copy&paste übernommen? ist da eventuell ein controll-zeichen drinn?

auf meinem mac würde ich den code einfach mal nach BBEdit kopieren. das zeigt mir 'unerlaubte' zeichen an.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2005, 15:51   #8 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
@hgseib:
'unerlaubte' Zeichen sind keine drin. Ich hab den Quellcode jetzt umstrukturiert und somit tritt das Problem nicht mehr auf. Die Funktion hat jetzt mitsamt ihren Unterfunktionen ca. 250 Zeilen Quelltext weniger.

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele