Absturz ohne Fehlermeldung

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

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!
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Ja, nur wüsste ich nicht wie diesem Problem begegnen.
Ich werde nochmals eine Versuchsserie unternehmen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
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

Beitrag von Werner_Bayern »

Herbert hat geschrieben:Mein Problem besteht leider immer noch.
Du weißt das sicher, Modul EH ist Errorhandler, also ein Fehler in der Fehlerbehandlung. Mal Standard-Errorsys verwenden?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Keine Aenderung, leider. Stack Overflow ruft den Errorhandler...
Grüsse Herbert
Immer in Bewegung...
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: Absturz ohne Fehlermeldung

Beitrag von Tom »

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
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

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...
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: Absturz ohne Fehlermeldung

Beitrag von brandelh »

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:

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
Nun erhalte ich keinen stackoverflow mehr wegen Fehler in der Fehlerbehandlung.
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

OK bau ich noch so ein :D
Grüsse Herbert
Immer in Bewegung...
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: Absturz ohne Fehlermeldung

Beitrag von AUGE_OHR »

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.
du meinst das sicherlich auf die Errorsys bezogen.
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
UliTs hat geschrieben:Dies paßt auch gut zu Deiner Fehlermeldung, da der Fehler innerhalb des GUI Thread auftritt.
@Herbert : verwendest du an der Stelle activeX / Dllcall ?
gruss by OHR
Jimmy
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

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.
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

AUGE_OHR hat geschrieben:
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.
du meinst das sicherlich auf die Errorsys bezogen.
Natürlich nicht!
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Herbert hat geschrieben: habe mit der Option
/STACK:5000000,10000)
auch keinen Erfolg
So das Schreiben im Forum hilft eigene Schreibfehler entdecken.
/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...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Leider zu früh gefreut. Schmiert immer noch ab.
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

Mir kam gerade eine Idee, wenn man mit mehreren Threads arbeitet.
Bei

Code: Alles auswählen

Thread():new( [<nMaxStackSize>] )
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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Oh, danke Uli, tönt interessant. Werde ich testen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

Auch diese Massnahme hilft nicht. Weiterhin Abstürze ohne XppFatal :banghead:
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

Herbert hat geschrieben:Auch diese Massnahme hilft nicht. Weiterhin Abstürze ohne XppFatal :banghead:
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...

Hast Du das gleiche Verhalten?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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

Beitrag von Herbert »

hmm, schwer zu sagen, hätte unbewust zumindest dies nicht festgestellt. Ich werde darauf noch acht geben.
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
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

Beitrag von UliTs »

Gibt es eigentlich in xBase++ die Möglichkeit zur Laufzeit die freie Stackgroesse abzufragen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Roland
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 29
Registriert: So, 05. Nov 2006 0:39
Wohnort: Witten

Re: Absturz ohne Fehlermeldung

Beitrag von Roland »

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
Die Wege der Bytes sind unerforschlich!
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: Absturz ohne Fehlermeldung

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Roland
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 29
Registriert: So, 05. Nov 2006 0:39
Wohnort: Witten

Re: Absturz ohne Fehlermeldung

Beitrag von Roland »

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
Die Wege der Bytes sind unerforschlich!
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Absturz ohne Fehlermeldung

Beitrag von Koverhage »

Welche Version von XPPPDF hast Du ?
Gruß
Klaus
Antworten