Seite 1 von 2
Variable leer ?
Verfasst: 04.10.2013 22:34
von marcelx
Hallo,
ich habe ein seltsame Effekt:
Mein Programm ist ca. 3000 Zeilen lang.
Und hat bis jetzt gut funktioniert.
Ich habe mein Code mit einige Funktion erweitert. Seit dem habe ich ein komische Effekt:
An eine Stelle, welche vor die Änderungen ok war, ist ein Variable leer.
Code: Alles auswählen
Procedure test(msg.s)
debug "MSG: "+msg
...
EndProcedure
NewList Data.s()
...
ForEach Data()
test(Data())
Next
Ich kann mein Programm mit gleiche Randbedingungen starten und diese Effekt tritt nicht immer auf und nicht immer an der gleiche Stelle der Aufruf.
Hat jemand eine Idee was es sein könnt
Danke schon mal
MarcelX
Re: Variable leer ?
Verfasst: 04.10.2013 23:08
von Kiffi
einige Fragen vorab:
* EnableExplicit eingeschaltet?
* Benutzt Du Thread?
* PB4.61?
Grüße ... Kiffi
Re: Variable leer ?
Verfasst: 04.10.2013 23:11
von marcelx
Ja
Re: Variable leer ?
Verfasst: 05.10.2013 01:40
von Schranz0r
Kiffi hat geschrieben:einige Fragen vorab:
* EnableExplicit eingeschaltet?
* Benutzt Du Thread?
* PB4.61?
Grüße ... Kiffi
Kiffi frag dich sowas und du antwortest mit -> JA?
https://www.youtube.com/watch?v=YAjAyel3-9M
Ne, jetzt mal ernst, Explicit ist an?
Re: Variable leer ?
Verfasst: 05.10.2013 07:14
von dysti
Da wird immer nur ein Codebeispiel eingebracht, weil man der Meinung ist, nur dieser Teil wäre die Ursache,
Meine Erfahrung hat aber gezeigt, daß der Fehler überwiegend an anderer Stelle zu finden ist.
Sei es die Zuweisung von globalen und privaten Variablen oder die Übergabe solcher.
Kurzum: Der Fehler liegt sicherlich nicht in der Schleife.
Um helfen zu können, ist schon ein Vergleich von funktionierendem und/oder defekten Code erforderlich
und nicht nur eine kleiner Codeabschnitt.
Dann würden auch nicht die obigen Nachfragen auftauchen und man selber hätte dann auch schnellere Hilfe.
Re: Variable leer ?
Verfasst: 05.10.2013 10:54
von marcelx
* EnableExplicit eingeschaltet?
* Benutzt Du Thread?
* PB4.61?
Die Fragen waren richtig, weil den Effekt passiert in ein Thread.
Was ich nicht verstehe ist es dass an der Stelle wo diese Effekt vorkommt nichts geändert wurde und dass diese Effekt nicht immer reproduzierbar ist.
Übrigens ich bekenne mich für mein "ja" als kurze Antwort auf drei kurz und präzise Fragen.
@dysti
Meine Erfahrung hat aber gezeigt, daß der Fehler überwiegend an anderer Stelle zu finden ist.
Ich stimme dir zu.
Re: Variable leer ?
Verfasst: 05.10.2013 13:06
von NicTheQuick
Du wirst entweder irgendwo mit Strings hantieren ohne Thread-Safe in den Optionen aktiviert zu haben oder du schreibst irgendwo in/über Speicherbereiche (hinaus), die du nicht alloziert hast, was dann aber erst später zu einem Problem wird. Schonmal den Purifier ausprobiert?
Re: Variable leer ?
Verfasst: 05.10.2013 13:17
von marcelx
Danke für deine Hinweisen.
Du wirst entweder irgendwo mit Strings hantieren ohne Thread-Safe in den Optionen aktiviert zu haben
Ich starte mein Thread so:
Frage: was ist gemeint mit "Thread-Safe in den Optionen aktiviert" ?
Schonmal den Purifier ausprobiert
Kenne ich nicht. Wo finde Informationen darüber ?
Danke und Gruß
MarcelX
Re: Variable leer ?
Verfasst: 05.10.2013 13:23
von NicTheQuick
marcelx hat geschrieben:
Frage: was ist gemeint mit "Thread-Safe in den Optionen aktiviert" ?
Schau einfach in die Compiler Options. Da gibt es ein entsprechendes Häkchen.
Schonmal den Purifier ausprobiert
Kenne ich nicht. Wo finde Informationen darüber ?
Der ist ebenfalls dort zu finden, aber wie er genau funktioniert, solltest du dir lieber in der Hilfe anschauen.
Re: Variable leer ?
Verfasst: 05.10.2013 14:01
von ts-soft
Der Name der Thread-Procedure läßt vermuten, das mit Listen o. ä. gearbeitet wird, somit
sollte er sich auch noch mit Mutex und Co. beschäftigen.
Threads erfordern fortgeschrittene Programmiererfahrung!
Gruß
Thomas