Programmabbruch, ohne Fehlermeldung

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi,

gerade habe ich mir die Haare gerauft. Es kam immer wieder vor, dass ein Programm sich mittendrin verabschiedete. Und das sang- und klanglos. Im Debugger habe ich festgestellt, dass ich versucht habe eine Variable mit dem Wert NIL über += an einen Text anzuhängen. Also cText += NIL.
Da hätte das Programm doch eine Fehlermeldung ausspucken müssen und nicht einfach nur den Dienst quittieren dürfen, oder?

Es gab nichts, keinen Hinweis, wenn es auf Konsolenebene betrieben wurde und auch keine xppFatal.log. Nichts.
Zuletzt geändert von Manfred am Fr, 06. Mär 2009 10:40, insgesamt 2-mal geändert.
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: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Porgrammabbruch, ohne Fehlermeldung

Beitrag von brandelh »

Code: Alles auswählen

proc main
   local cTxt := "xyz"
   cTxt += NIL
   ? "Test",cTxt
return
ergibt bei mir - wie erwartet ... XPPERROR.LOG:

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "D:\TEST\Test\test.exe" Datum: 06.03.2009 01:44:15

Xbase++ Version     : Xbase++ (R) Version 1.90.331
Betriebssystem      : Windows 2000 05.00 Build 02195 Service Pack 4
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: U VALUE: NIL
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Parameter hat falschen Typ
oError:filename     : 
oError:genCode      :          2
oError:operation    : <xyz>+=<NIL>
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          3
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von MAIN(3)
hast du die Fehlerbehandlung umgeleitet ?
ErrorSys() (ERRORSYS.PRG) selbst definiert ?

Normal ist das nicht ... außer die Platte ist so voll, dass einfach GAR NIX mehr drauf passt ;-)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Porgrammabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi Hubert,

damit habe ich gerechnet, dass es nicht normal ist. Die Platte hat noch verdammt viel Platz. Ja, die Errorsys ist eine eigene, aber im Debugger konnte ich nicht den kleinsten versuch erkennen, das die überhaupt aufgerufen wurde.
Wenn ich heute Zeit habe, dann werde ich das nochmal umbauen. Den Fehler rein und die eigene Errorsys raus. mal schauen, was dann passiert.
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: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Porgrammabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi Hubert,

jetzt habe ich die eigene Errorsys entfernt. Das Programm beendet trotzdem ohne Fehlermeldung. Sowas liebe ich. Wie soll man sowas nachvollziehen können?
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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Porgrammabbruch, ohne Fehlermeldung

Beitrag von Rolf Ramacher »

Hi Manfred,

gibt es denn eine xppfartal.log ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi Rolf,

nichts, gar nichts. Einfach nur Ende. Schluß aus. :banghead:
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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Rolf Ramacher »

Hi Manfred,

bist du sicher, das das Programm nicht zu Ende gelaufen ist ?? Wenn du es noch nicht hast, setze doch vor den Return (Nil) eine msgbox("Programm beendet")
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Ey Rolf,

willst Du mich ärgern? Oben steht doch, dass ich im Debugger die Stelle untersucht habe. Und außerdem warum sollte ein Programm so gebaut sein, dass es mittendrin aufhört, egal ob mit oder ohne Fehler? :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: 9394
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 105 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Tom »

@Manfred: Was Dir Rolf durch die Blume zu sagen versuchte, war, dass es auch die Möglichkeit gibt, dass das Programmende via Code ausgelöst wird, also durch ein QUIT oder AppExit() oder vergleichbares irgendwo. In der Alaska-Knowledgebase sind einige Fälle von "spurlosen Programmterminierungen" dokumentiert, aber wenn all das nicht zutrifft und keine XPPFATAL erzeugt wird, sollte man diese Möglichkeit wenigstens erwägen. Umso mehr, da es nachvollziehbar zu sein scheint, also wiederholbar. Spontane, spurlose Programmbeendigungen meldet mein Support auch zuweilen, aber sie sind so gut wie nie nachstellbar.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Tom,

dieser Fehler ist so wie er bei mir auftritt nachbaubar, bzw. er taucht regelmäßig auf, wenn die Var NIL ist. Aber Hubert bekommt bei einem gebauten Beispiel eine Fehlermeldung, wie es sich gehört.
Ich habe das mal zur Vorsicht an Alaska geschrieben, mal sehen, was denen dazu einfällt. Der Witz ist und das fällt mir jetzt gerade ein:

wenn ich es so mache:

Code: Alles auswählen

cText_Preisaenderung += oEan13:ean + " " +;
            Substr(oVostamm:v_titel,1,30) + " " +;
            SubStr(oVostamm:v_darstell,1,30) + " " +;
            Transform(oVostamm:vkinet,"9999.99") + " " +;
            Transform(oAmazonCatalog:price,"999.99") + " " +;
            oGenre:bez + CRLF
gibt es eine ordentliche Fehlermeldung

so aber nicht

Code: Alles auswählen

  cText_Preisaenderung += oEan13:ean + " "                             <-- hier springt das Programm raus (NIL in :ean)
  cText_Preisaenderung += Substr(oVostamm:v_titel,1,30) + " "
  cText_Preisaenderung += SubStr(oVostamm:v_darstell,1,30) + " "
  cText_Preisaenderung += Transform(oVostamm:vkinet,"9999.99") + " "
  cText_Preisaenderung += Transform(oAmazonCatalog:price,"999.99") + " "
  cText_Preisaenderung += oGenre:bez + CRLF
Das ist doch mal eine Frage wert, oder?
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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Rolf Ramacher »

Hi Manfred,

ich wollte dich keinegswegs ärgern, aber es hätte ja sein können das auf einem anderen Wege in einer Function das Programm beendet werden sollte.

Kannst du den der besagten Codezeile keine Abfrage einbauen.

If oEan13:13 <> NIL
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9394
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 105 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Tom »

Oder so:

Code: Alles auswählen

cText_Preisaenderung += IF(oEan13:ean # NIL,oEan13:ean,"") + " " +;
Trotzdem sollte das an dieser Stelle nicht ohne Fehlermeldung abschmieren.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

@Rolf

alles klar. Es war auch ein Denkfehler von mir. Ich habe es gegen eine sichere Art geändert.

@Tom,

da gehe ich mit Dir vollkommen Kondom. Alaska hat das Beispiel schon erhalten. Mal sehen, wann die reagieren. Ich habe noch was anderes vor ein paar Tagen abgeschickt, aber noch keine Reaktion darauf erhalten.
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: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von brandelh »

Hallo,

ich sehe da ein oEAN ! also ein Object !

Bitte zeige uns doch mal den Quellcode dieser Funktion (ist sie von dir - oder aus einer DLL)
eventuell wird dort das Programm ins Nirwana geschickt, ohne dass Xbase++ noch reagieren könnte.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi Hubert,

damit dürfte nichts sein, weil es ja bei der anderen Variante den gewünschten Fehler produziert.
Das Objekt ist in Ordnung, es gehört mir. Es ist nur die Membervar, die aus Pennerei NIL ist zu dem Zeitpunkt.
ich habe es gegen (oEAn13:nArea)->ean ausgetauscht und das klappt.

Ich warte einfach ab, was Alaska dazu sagt.
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: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von brandelh »

Manfred hat geschrieben:Hi Hubert,
damit dürfte nichts sein,
warst du nicht der, der vorkompilierte OBJ Dateien mit einbringt ?
Könnte da welche mit verschiedenen Ständen dabei sein 8)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Programmabbruch, ohne Fehlermeldung

Beitrag von Manfred »

Hi Hubert,

ja der bin ich.
Aber da liegt das derzeitige Problem nicht. Wie schon erwähnt, dieses Objekt ist absolut ok. Es wird etwas höher schon benutzt und macht keine Probleme.
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