Absturz ohne Fehlermeldung
Moderator: Moderatoren
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Hubert, wie schon gesagt, die Zugriffsrechte sind komplett in Ordnung...
und das Programm ist reinstes GUI. Was anderes kommt heutzutage gar nicht mehr in Frage!
und das Programm ist reinstes GUI. Was anderes kommt heutzutage gar nicht mehr in Frage!
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Hallo Herbert,
wie schon einmal erzählt, habe ich ja manchmal ein ähnliches Problem.
Ich vermute, es liegt an einer Active-X-Komponente, die hin- und wieder in eine Endlosschleife kommt und dabei den Stack vollschreibt.
Dies paßt auch gut zu Deiner Fehlermeldung, da der Fehler innerhalb des GUI Thread auftritt.
Uli
wie schon einmal erzählt, habe ich ja manchmal ein ähnliches Problem.
Ich vermute, es liegt an einer Active-X-Komponente, die hin- und wieder in eine Endlosschleife kommt und dabei den Stack vollschreibt.
Dies paßt auch gut zu Deiner Fehlermeldung, da der Fehler innerhalb des GUI Thread auftritt.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Ja, nur wüsste ich nicht wie diesem Problem begegnen.
Ich werde nochmals eine Versuchsserie unternehmen.
Ich werde nochmals eine Versuchsserie unternehmen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2120
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 70 Mal
Re: Absturz ohne Fehlermeldung
Du weißt das sicher, Modul EH ist Errorhandler, also ein Fehler in der Fehlerbehandlung. Mal Standard-Errorsys verwenden?Herbert hat geschrieben:Mein Problem besteht leider immer noch.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Keine Aenderung, leider. Stack Overflow ruft den Errorhandler...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Tom
- 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: Absturz ohne Fehlermeldung
Manchmal ist ein Stack-Overflow auch tatsächlich ein Stack-Overflow. Und das geschieht beispielsweise, wenn eine rekursive Funktion keine Abbruchbedingung hat oder diese nie eintritt. Die Stackgröße sollte per Compiler-Direktive durchaus einen vernünftigen Wert haben (also höher als der Standard sein), aber nach meiner Erfahrung sind Stack-Overflows meistens hausgemacht. Leider ist der Stack auch für das Laufzeit-Fehlersystem wichtig. Deshalb kommt es dort nicht mehr zu einer brauchbaren Reaktion. Das ist einer der von Jimmy skizzierten Fälle, in denen die Applikation auch tatsächlich instabil wird, wie bei einem IDSC (obwohl das zumeist auch nur ein lokales Problem ist). Was ich sagen will: Die Ursachensuche muss etwas tiefer ansetzen.
Herzlich,
Tom
Tom
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Ja, nur hätte ich mit demselben Programm wohl nicht nur in 2 Fällen dieses Phänomen. Uebrigens mit allen kopierten Daten vom erwähnten Installationsort bei mir kein Problem.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- 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: Absturz ohne Fehlermeldung
Ich verwende in meiner ErrorSys eine static Variable die immer eines hochzählt.
Um einen "Fehler im Errorhandler" zu erkennen und die endlosen Fehlermeldungen (eine msgbox je Aufruf) zu vermeiden,
habe ich eine static Variable eingefügt:
Nun erhalte ich keinen stackoverflow mehr wegen Fehler in der Fehlerbehandlung.
Um einen "Fehler im Errorhandler" zu erkennen und die endlosen Fehlermeldungen (eine msgbox je Aufruf) zu vermeiden,
habe ich eine static Variable eingefügt:
Code: Alles auswählen
STATIC FUNCTION StandardEH( oError )
LOCAL i, cMessage, aOptions, nOption, nSeverity
LOCAL row, col
LOCAL oDacSession, oSession
Static nFehler_Stack := 0 // HB ********************************
if nFehler_Stack > 5
quit
endif
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Absturz ohne Fehlermeldung
du meinst das sicherlich auf die Errorsys bezogen.UliTs hat geschrieben:Ich vermute, es liegt an einer Active-X-Komponente, die hin- und wieder in eine Endlosschleife kommt und dabei den Stack vollschreibt.
Die Frage bei solchen activeX Fehler ist aber "warum" er überhaupt in die Errorsys verzweigt.
ActiveX und Co laufen ja im GUI Thread ... und der braucht auch "Zeit"
zu activeX wird eine "Verbindung" aufgebaut ... im GUI Thread.
wenn man nun "massive" Anfragen macht kommt es bei Xbase++ immer wieder zu "timeout" ... XXX-Server not avaiable -> crash
ich muss also im Prinzip "jeden" externen Call "abfangen"
Code: Alles auswählen
bSaveError := ERRORBLOCK( { | oError | BREAK( oError ) } )
BEGIN SEQUENCE
DO CASE
CASE cAction = "NEW"
::oAppointment := ::oNameSpace:getDefaultFolder( olFolderCalendar )
CASE cAction = "EDIT"
::oAppointment := ::oNameSpace:getDefaultFolder( olFolderCalendar ) :Items
ENDCASE
RECOVER USING oError
ERRORBLOCK( bSaveError )
::oAppointment := NIL
MSGBOX( "Der RPC-Server ist nicht verfügbar." )
END SEQUENCE
ERRORBLOCK( bSaveError )
IF NIL = ::oAppointment
RETURN .F.
ENDIF
@Herbert : verwendest du an der Stelle activeX / Dllcall ?UliTs hat geschrieben:Dies paßt auch gut zu Deiner Fehlermeldung, da der Fehler innerhalb des GUI Thread auftritt.
gruss by OHR
Jimmy
Jimmy
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Nein, er stürzt ja nicht immer an derselben Stelle ab. Weiterhin bei diesem Kunden ohne jegliche xppfatal.
habe mit der Option
/STACK:5000000,10000)
auch keinen Erfolg
Habe auf die neueste Xclass gewechselt, auch keine Aenderung.
Auch den Vorschlag von Hubert habe ich mit dabei.
habe mit der Option
/STACK:5000000,10000)
auch keinen Erfolg
Habe auf die neueste Xclass gewechselt, auch keine Aenderung.
Auch den Vorschlag von Hubert habe ich mit dabei.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Natürlich nicht!AUGE_OHR hat geschrieben:du meinst das sicherlich auf die Errorsys bezogen.UliTs hat geschrieben:Ich vermute, es liegt an einer Active-X-Komponente, die hin- und wieder in eine Endlosschleife kommt und dabei den Stack vollschreibt.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Ich hätte noch eine Idee (wenn sie nicht zu aufwendig ist):
Du nimmst mal einen eigenen Rechner mit, bei dem Du weißt, dass er bei Dir mit den kopierten Daten einwandfrei läuft.
Dann hängst Du diesen Rechner dort ins Netzwerk und testest, ob es dort auch zum Programmabsturz kommt.
Uli
Du nimmst mal einen eigenen Rechner mit, bei dem Du weißt, dass er bei Dir mit den kopierten Daten einwandfrei läuft.
Dann hängst Du diesen Rechner dort ins Netzwerk und testest, ob es dort auch zum Programmabsturz kommt.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
So das Schreiben im Forum hilft eigene Schreibfehler entdecken.Herbert hat geschrieben: habe mit der Option
/STACK:5000000,10000)
auch keinen Erfolg
/STACK:5000000,500000
Mit dieser Einstellung sind zumindest bisher keine Abstürze mehr aufgetreten. Ich werde dies hier dann noch bestätigen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Leider zu früh gefreut. Schmiert immer noch ab.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Mir kam gerade eine Idee, wenn man mit mehreren Threads arbeitet.
Bei
kann man die maximale Stackgröße angeben, die dem Thread zur Verfügung steht (Standard: nur 50.000 Bytes). Vielleicht gibt es da irgendwo ein Problem.
Uli
Bei
Code: Alles auswählen
Thread():new( [<nMaxStackSize>] )
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Oh, danke Uli, tönt interessant. Werde ich testen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Auch diese Massnahme hilft nicht. Weiterhin Abstürze ohne XppFatal
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Ich meine, ich habe bei mir festgestellt, das bei größerem Stack es vor dem Absturz ohne XppFatal zunächst das Programm für ein paar Sekunden steht, bevor es sich schließt. So, als ob es in einer unendlichen Rekursion steht, die den Stack vollschreibt. bei größerem Stack dauert es dann halt länger...Herbert hat geschrieben:Auch diese Massnahme hilft nicht. Weiterhin Abstürze ohne XppFatal
Hast Du das gleiche Verhalten?
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
hmm, schwer zu sagen, hätte unbewust zumindest dies nicht festgestellt. Ich werde darauf noch acht geben.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Absturz ohne Fehlermeldung
Gibt es eigentlich in xBase++ die Möglichkeit zur Laufzeit die freie Stackgroesse abzufragen?
Uli
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Re: Absturz ohne Fehlermeldung
Zitat: "Bei mir beendet sich das Programm auch immer wieder ohne XPPFatal und ich weiss nicht warum (ich habe die XbpPDF-Klasse von Edgar Borger in Verdacht)."
Guten Abend,
ich habe mit Interesse diese Diskussion hier gelesen und hätte gern gewußt, ob sich mittlerweile eine Lösung gefunden hat.
Auch ich habe seit dem Einbau der XbpPDF-Klasse diesen Fehler. Klasse wieder ausgebaut und siehe da: Der Fehler tritt nicht mehr auf.
Nach meiner Ansicht gibt es somit da definitiv einen Zusammenhang. Gibt es da nähere Informationen oder einen Workaround, da ich die PDFs brauche?
Ach ja, herzlichen Dank für die Weihnachtsgrüße und allen ein schönes neues Jahr ohne Bugs!
Roland
Guten Abend,
ich habe mit Interesse diese Diskussion hier gelesen und hätte gern gewußt, ob sich mittlerweile eine Lösung gefunden hat.
Auch ich habe seit dem Einbau der XbpPDF-Klasse diesen Fehler. Klasse wieder ausgebaut und siehe da: Der Fehler tritt nicht mehr auf.
Nach meiner Ansicht gibt es somit da definitiv einen Zusammenhang. Gibt es da nähere Informationen oder einen Workaround, da ich die PDFs brauche?
Ach ja, herzlichen Dank für die Weihnachtsgrüße und allen ein schönes neues Jahr ohne Bugs!
Roland
Die Wege der Bytes sind unerforschlich!
- Jan
- 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: Absturz ohne Fehlermeldung
Wie umfangreich sind denn die PDF? Die Klasse von Edgar schreibt für jede aufgerufene Funktion einen Array-Satz. Und Xbase++ steigt bei zu großen Arrays kommentarlos aus (ich glaube, das sind 200.000 oder 300.000). Es gibt aber von Alaska auf Anfrage eine DLL mit entsprechenden Anweisungen zur Benutzung. Damit habe ich das bei mir auf 800.000 Arraysätze hochgeschraubt. Ohne die von Alaska befürchteten Performance-Einbußen.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Re: Absturz ohne Fehlermeldung
Hallo Jan (ich hoffe das 'du' geht in Ordnung?),
ich habe die PDF-Funktionalität nur eingefügt, sie wird bei den reproduzierbaren Programmabstürzen nicht ein einziges Mal aufgerufen. Es ist so, wie weiter oben beschrieben, daß aus dem Hauptfenster zu Testzwecken mal mehrere Childfenster aufgerufen und anschließend wieder geschlossen werden. So nach 4 bis 5x erfolgt dann der Absturz. Eine Stackvergrößerung, wie ebenfalls hier vorgeschlagen, hat das Ganze nur verzögert.
Dies (Variante Stackvergrößerung) habe ich mal mit dem Taskmanager beobachtet: Das Programm reagiert nicht mehr (andere Variante statt Absturz) und plötzlich steht die CPU-Aulastung konstant bei etwas über 50% und die Speicherbelastung steigt kontinuierlich an.
Es liegt meiner Ansicht nach tatsächlich an dem xbpPDF. Mögliche Ideen meinerseits: Entweder mit einer anderen Xbase Versionsnr. kompiliert oder die dort verwendeten Public Variablen/Funktionen beißen sich mit Variablen-/Funktionenbezeichnungen in meiner Anwendung? Letzteres halte ich aber für sehr unwahrscheinlich.
Beste Grüße
Roland
ich habe die PDF-Funktionalität nur eingefügt, sie wird bei den reproduzierbaren Programmabstürzen nicht ein einziges Mal aufgerufen. Es ist so, wie weiter oben beschrieben, daß aus dem Hauptfenster zu Testzwecken mal mehrere Childfenster aufgerufen und anschließend wieder geschlossen werden. So nach 4 bis 5x erfolgt dann der Absturz. Eine Stackvergrößerung, wie ebenfalls hier vorgeschlagen, hat das Ganze nur verzögert.
Dies (Variante Stackvergrößerung) habe ich mal mit dem Taskmanager beobachtet: Das Programm reagiert nicht mehr (andere Variante statt Absturz) und plötzlich steht die CPU-Aulastung konstant bei etwas über 50% und die Speicherbelastung steigt kontinuierlich an.
Es liegt meiner Ansicht nach tatsächlich an dem xbpPDF. Mögliche Ideen meinerseits: Entweder mit einer anderen Xbase Versionsnr. kompiliert oder die dort verwendeten Public Variablen/Funktionen beißen sich mit Variablen-/Funktionenbezeichnungen in meiner Anwendung? Letzteres halte ich aber für sehr unwahrscheinlich.
Beste Grüße
Roland
Die Wege der Bytes sind unerforschlich!