Parameter verschwinden in Function [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

auf den ersten Blick, will ich genau das sagen. Ich vermute aber mittlerweile, dass irgendwas im Speicher passiert. Die VX macht mir auch eine Fehlermeldung, wenn ich über die leeren Vars move. Die Routine wird wie schon erwähnt mehrmals aufgerufen in den Durchläufen. Es kann also keine Verschiebung stattfinden.

Wie gesagt, ich werde mir das nachher nochmal genau ansehen. Im Moment muß ich noch was anderes erledigen. Ich liiiebe diese Hektik..... :roll:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Ich würde Huberts Rat folgen und an dieser Stelle erst einmal auf den Debugger verzichten. Lieber direkt in der Anwendung loggen, dann kannst Du sicher sein, dass Du auch nur mit Daten hantierst, die es in der Anwendung gibt. Und den Callstack nicht vergessen.

Mittelfristig wäre etwas Originalcode hilfreich. :wink:
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

nur schonmal so vorab:
vars.JPG
vars.JPG (173.2 KiB) 8323 mal betrachtet
und die Variable oVtPara ist Public, wenn ich die aufrufe ist die auch leer.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Hä?

Die Funktion, die ich da sehe (vortrag_salden) hat überhaupt keine Parameter. Ganz egal, mit welchen Parametern man sie aufruft - ankommen können keine. Außerdem greift sie bei der Deklaration der lokalen Variablen auf eine (private oder globale) Objektvariable "oVtPara" zu, die gleich im Anschluss überdeklariert wird (MEMVAR oVtPara) und also NIL sein muss.

Oder meinst Du eine andere Funktion?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Oh sorry,

Erklärung dazu: als ich die Funktion aufrief, schaute ich testweise die vars an und stellte ab da fest, dass sie "leer" waren obwohl sie kurz drüber deklariert wurden. Das sollte nur ein Beispiel sein, was der Aufruf zurück gibt. Das mit oVtPara habe ich nur noch hinzugefügt, weil das eine PUBLIC Var ist, die auch nichts mehr beinhaltet. Die hatte ich aber erst nach dem Schnappschuß aufgerufen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

so wird sie aufgerufen
bild1.JPG
bild1.JPG (16.79 KiB) 8329 mal betrachtet
und das ist das Ergebnis
bild2.JPG
bild2.JPG (182.53 KiB) 8329 mal betrachtet
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von brandelh »

Tom hat geschrieben:"oVtPara" zu, die gleich im Anschluss überdeklariert wird (MEMVAR oVtPara) und also NIL sein muss.
nein, MEMVAR verhindert nur die Warnung wenn man PRIVATE oder PUBLICS verwendet, es ändert nichts an deren Inhalt.

Kann es sein, dass noch mehrere Threads aktiv sind ?

Es handelt sich um eine STATIC function, kann es sein, dass du beim Debuggen in Quellcode einer anderen PRG kommst,
die zufällig auch eine STATIC funktion gleichen Namens aufruft ?

Da kann man sich eine ins Knie bohren beim Suchen ;-)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Nachtrag,

das ist aber schon nach dem Vorfall, dass die Speichervars "weg" sind.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Hubert,

manchmal treibst Du mich in die Verzweiflung. Ich hatte doch erwähnt, dass ovtpara zu dem zeitpunkt auch keinen Wert mehr hat. Weiterhin habe ich erwähnt, dass ich vergessen habe das in dem Screenshot aufzulisten, dass ich es aufgerufen habe. Stell Dir einfach vor, ich hätte oVtPara auch in dem Commandwindow aufgerufen und oben rechts würde auch Result stehen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von brandelh »

Die VX ist doch immer noch BETA, da kann der Debugger schon mal über den Jordan gehen.

Entscheidend ist was die EXE ohne Debugger macht, bau die Protokollroutine ein und lass es laufen.

PS: man kann es mit den IIF()... EVAL() Verschachtelungen IN DBEVAL() übertreiben !
Ich würde da eine Funktion aufrufen die das altmodisch regelt (aus DBEVAL()) ... dann gibt es auch schöne Fehlermeldungen ;-)

Manfred,

meine Anmerkung bezog sich auf die Wirkung von MEMVAR ...

und ich stelle mir gar nix mehr vor, ich geh jetzt nach Hause ... VX ... ich arbeite nicht mit BETA Software 8)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Hubert,

1) der xppdbg macht das gleiche
2) das Projekt ist übernommen und ich arbeitete noch alles um
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Hallo, Hubert.

Ich verwende MEMVAR nicht, habe aber in den Docs nachgelesen. Da steht tatsächlich, dass MEMVAR eine Variable deklariert, weshalb ich davon ausgegangen bin, dass sie anschließend NIL ist. Tatsächlich unterscheidet die Dokumentation zwischen Deklarationen und Erzeugungen. Es handelt sich also, wie Du ausführst, um Code, der nur für die Konsistenzkontrolle des Compilers nötig ist. Einen anderen Sinn kann ich hinter der Anweisung nicht erkennen.

Code: Alles auswählen

FUNCTION MAIN()
PRIVATE c := 'x'
? c
Test()
? c
RETURN NIL

FUNCTION Test()
MEMVAR c
? c
RETURN NIL
In allen drei Fällen lautet die Antwort 'x'. Interessant. Das wusste ich nicht, aber ich verwende das ja auch nicht. :wink:
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Sieht eigentlich irgendwie richtig aus. Allerdings wird bei der Definition der lokalen Variablen auf insgesamt vier weitere Funktionen zugegriffen. Dort schon gesucht?

Und hast Du die Variablen mal vor und nach den DEFAULT-Zuweisungen geprüft? Das wird ja so übersetzt:

Code: Alles auswählen

#xcommand DEFAULT <var1> TO <val1> [,<varN> TO <valN>];
       => IF <var1> == NIL ; <var1> := <val1> ; ENDIF ;
       [; IF <varN> == NIL ; <varN> := <valN> ; ENDIF ]
Nur wenn die Variablen wirklich NIL sind, werden ihnen die Defaultwerte zugewiesen. Wenn sie leer sind, nicht.

Ist aber Stochern im Trüben. Wie gesagt, eigentlich sie das richtig aus.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

das ist absolut richtig. Es knallt nur nach dem x-ten Durchlauf. Deshalb ja auch meine Vermutung jetzt, das irgendwas im Speicher passiert.

Wobei ich jetzt mal eine Frage zwischendurch habe. Wie man sieht sind Static Functionen im Einsatz. Davon gibt es Unmengen in dem Programm. Die sind auch nur 1x vertreten. Wäre es nicht besser generell darauf zu verzichten, wenn die nicht doppelt auftauchen? Ich meine von dem anderen "Unsinn" mal abgesehen, der da noch drin ist. DAzu komme ich sicherlich noch später. Ebenso wie die bis zum Erbrechen verschachtelten und verknoteten Funtionen in denen Eval und IF() Abfragen stehen usw. (Hubert sprach es gerade an.) Da muß ich auch noch ran, das ist zum Verrücktwerden. Beim Fehlersuchen stehe ich kurz vor Verzweiflungstaten.

@Tom,

dann müßte man aber trotzdem per := Werte reinschreiben können? Das geht aber auch nicht. Auch nicht in Local, oder Public. Alles weg...
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Hallo, Manfred.

STATIC Funktionen sind nur im PRG sichtbar, zu dem sie gehören. Ansonsten ist das bedeutungslos. Wenn man sowieso jeden Funktionsnamen nur einmal verwendet und keine PRGs schreibt, die auch in anderen Applikationen verwendet werden, kann man darauf verzichten. Aber es schadet auch nicht.

Evaluationsfunktionen wie Eval, AEval und DbEval sind eigentlich gut, weil sie den Code kompakter und eigentlich auch übersichtlicher gestalten. Sie ersetzen DO WHILE- und FOR NEXT-Konstrukte, und wenn man z.B. in den Codeblöcken, die von Controls ausgelöst werden, komplexe Vorgänge abbilden will, ohne in noch eine weitere UDF zu verzweigen, sind sie ohnehin das Mittel der Wahl. Aber man muss sie natürlich auch verstehen. Ich gebe zu, dass ich auch bei selbstverfasstem Code, der mit so etwas arbeitet, gelegentlich zweimal hinschauen muss, um nachvollziehen zu können, was da passiert. Und IF/IIF als Funktion liebe ich. Nicht nur, weil es z.B. auch in Codeblöcken Verzweigungen erlaubt, sondern weil es wirklich viel, viel übersichtlicher ist.

IFs gehen übrigens auch ganz ohne IF:

Code: Alles auswählen

FUNCTION TueWas()
nReturnCode := TueWasAnderes() // der Returncode ist 0, wenn das funktioniert hat, und hat sonst einen anderen Wert
RETURN nReturnCode == 0 // gibt .T. oder .F. zurück, je nachdem, ob der ReturnCode 0 war oder nicht
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

In beiden Beispielen wird mit SEQUENCE-Strukturen gearbeitet. Das macht man, weil man weiß, dass Code auf Fehler stoßen kann, und nicht möchte, dass er dann abschmiert - der Fehler ist aber trotzdem aufgetreten (er wird nur ignoniert). Ich habe z.B. eine Serviceapplikation als Dienst, die über einen Scheduler diverse Prozesse auslöst - Auswertungen, Datensicherungen, solche Sachen. Darin arbeite ich mit solchen Strukturen, weil einfach nicht auszuschließen ist, dass die Dinge, die man erwarten sollte, in der konkreten Situation auch gegeben sind (weil z.B. jemand einfach den Server heruntergefahren hat, obwohl der nachts weiterlaufen sollte). Der Service soll aber im Fehlerfall weiterlaufen - er protokolliert dann eben nur, dass es eine Komponentenanwendung gab, die nicht ausgeführt werden konnte, und wiederholt auf Wunsch den Prozess etwas später. Eine andere Anwendung für Sequenzen ist das Ownerdrawing, das ja im UI-Thread stattfindet. Hier muss man in einigen Fällen höllisch aufpassen, weil Synchronizität mit dem Objekt, für das gezeichnet wird, nicht immer gegeben ist. Deshalb sind einige Abfragen in Sequenzen gekapselt. Aber innerhalb eines Programms, das z.B. eine Auswertung erzeugen soll, würde ich das so nicht tun, weil das ja dazu führen kann, dass man einen Fehler nicht bemerkt. Es ist sinnvoller, die möglichen Fehler zu beseitigen.

Lange Rede. Nimm doch einfach mal die Sequenzen raus. Vielleicht ist der Fehler ganz woanders.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Parameter verschwinden in Function

Beitrag von AUGE_OHR »

Tom hat geschrieben:Ich bewundere Jimmys stoischen Optimismus, dass es für jedes Problem irgendeine kühne, aber total abseitige technische Lösung gibt.
naja ... ich gehe zunächst mal davon aus das es kein "Manfred" Fehler ist ... :-"

nun habe ich aber sein BEGIN SEQUENCE gesehen und würde auch dazu raten den Teil auszukommentieren was dann passiert.

p.s. bei einer "Schleife" würde ich IMMER ein SLEEP(1) einbauen
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Das ganze Programm ist voll damit. Und ich habe mich anfangs gefragt wozu das gut sein soll. Dann kam ich irgendwann zu der Erkenntnis, dass mein Vorgänger damit sowas ähnliches wie RETURn TO MASTER bauen wollte. Es wird zwischendurch oder öfter (habe ich noch nicht lokalisiert in weiterer Tiefe ein BREAK gesetzt und dann wird direkt die gesamte Sequence verlassen. Und das erinnert mich irgend wie an RETURn TO MASTER aus alten dBase Zeiten. Eine andere Erklärung habe ich nicht dafür. Herausnehmen kann ich es also pauschal nicht, ohne vorher geprüft zu haben, ob nicht irgendwo zwischendrin sowas steht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

ich habe mal Memwatch mitlaufen lassen nur mal so. Kann jemand mit dem Logfile was anfangen?
logfile.JPG
logfile.JPG (267.13 KiB) 8263 mal betrachtet
das ist jetzt bis zur Fehlermeldung
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Jan »

Hallo Manfred,

was mir spontan auffällt ist die Anzahl der Handles. Die steigt massiv an. Die menge dürfte hier noch kein Problem sein. Aber es muß einen Grund geben dafür. Wird irgendwas immer neu erstellt? Statt das alte zu nutzen oder vorher zu destroyen? Alternativ der Hinweis von Jimmy, mal eine Pause zwischendurch einzulegen, um dem GC Zeit zum Aufräumen zu geben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Das mit den Handles habe ich auch schon bemerkt. Es muß was mit dem Speicher sein. Jedesmal läuft die Sache nur eine bestimmte Anzahl an Vorgängen durch. Wenn ich die Vorgänge um 1 reduziere, dann klappt es, wenn ich dann sofort danach die Vorgänge mit der gleichen Anzahl starte, dann tritt der Fehler früher auf. Starte ich das Programm neu und fange wieder von vorne an, geht es genau so. Ich finde aber zum verrecken nicht den Bereich, wo es passiert. Sobald ich mit dem Debugger step by step vorgehe, taucht der Fehler jedesmal woanders auf.

PS: ich bin gerade dabei den Vorschlag von Hubert mit Set Alternate einzubauen, aber das ist auch nicht so einfach, weil es teilweise wandert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von satmax »

Zwei "verdächtige" Sachen fallen mir auf, zuerst, gehen Dir die Handles aus? die werden immer mehr, da wird etwas nicht richtig freigegeben. MEM_RAM_AVAIL: 0 kann ich nicht deuten. Ich habe da Werte wie 2097152, aber niemals 0.

Rufst Du eine Funktion rekursiv auf?
Gruß
Markus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Parameter verschwinden in Function

Beitrag von Tom »

Wenn es Sequenzen mit Breaks gibt, aber ohne Fehlerbehandlung (ersetzter Errorblock, RECOVER USING), dann lässt sich das auch in eine andere Struktur einbetten (v.a. DO WHILE). Die Idee, eine Art "RETURN TO MASTER" auf diese Art abzubilden, ist nicht eben unelegant, aber m.E. auch gefährlich.

Dass Speicher aufgefressen wird, kann daran liegen, dass Symboldefinitionen (bzw. -erzeugungen) permanent wiederholt werden, ohne dass je eine Stelle angesprochen wird, an der es eine Chance zur Freigabe gibt. Auch das kann mit den Sequenzen einhergehen.

Alles sehr merkwürdig. Aber in gewisser Weise auch interessant.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

Frage: würde es etwas bringen, wenn ich in alle Begin Sequence ein recover einbaue und dann ein altd() um zumindest bei mir im Test dort einen Halt zu generieren um zu schauen ob überhaupt alles fehlerfrei läuft?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Parameter verschwinden in Function

Beitrag von Manfred »

oops, es tut sich was. Ich habe schon eine Stelle gefunden, in der es einen Sprung ins Recover gibt. Zufall, oder bisher verdeckten Fehler gefunden?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten