Startprobleme

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Startprobleme

Beitrag von Jan »

In einer meiner Hauptprogramme habe ich seit einigen Tagen ein seltsames Phänomen: Ab und an, ungefähr zu 50 % aller Fälle, friert das Programm beim Start ein. Das passiert sofort im Startbildschirm, während des Aufbaues einiger Statics. Es werden immer gut 80 % aller Statics aufgebaut, manchmal einige mehr, manchmal einige weniger. Da geht dann nichts mehr, ich muß das ganze über den Taskmanager beenden.

Das passiert unter 2000 Pro und XP Pro, auf unterschiedlichen Rechnern, immer alles Lokal, sowohl direkter Start der .exe als auch normal oder im Debugmodus aus VX heraus. Einziger Unterschied: Manchmal, eher selten, kann ich unter VX das Programm über STRG-F2 beenden. Aber meist geht auch das nicht, da bleibt dann wieder nur wieder der Taskmanager.

Auf Datenbanken wird zu dem Zeitpunkt noch nicht zugegriffen.

Löschen aller .obj und komplettes Neuaufbauen hat nichts gebracht.

Die Auslastung des Systems ist lt. Taskmanager nicht ungewöhnlich groß.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hmm,
wenn Du kein SetCancel( .f. ) in Deinem Code hast, kannst Du doch in dem Fall mal versuchen, das hängende Programm mit ALT-C zu beenden.
Dann wird eine XPPFATAL.LOG geschrieben, in der die (mit viel Glück auch richtige) Stelle steht, an der das Programm abgebrochen wurde...
Ansonsten würde ich mal die Memorymodule mit einem Testprogramm durchackern...
Oder mal im abgesicherten Modus starten und dann das Programm probieren...
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

wann war dein letzter Virenscann ?
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Martin,

STRG-C geht nicht. Der einzige Effekt ist, das ohne STRG-C ein Beenden über das x rechts oben nichts passiert, mit STRG-C kommt die Meldung, daß das Programm nicht reagiert und ob ich es beenden möchte. natürlich dann ohne log-Bericht.

Jan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Startprobleme

Beitrag von AUGE_OHR »

hi,
Jan hat geschrieben: während des Aufbaues einiger Statics. Es werden immer gut 80 % aller Statics aufgebaut, manchmal einige mehr, manchmal einige weniger. Da geht dann nichts mehr, ich muß das ganze über den Taskmanager beenden.
vielleicht mal im Project.xpj den Stack erhöhen ?
LINK_FLAGS = /STACK:8196

gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Jan,
ALT-C - nicht Strg-C!!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Ups. Aber ALT-C funktioniert genauso gut oder schlecht wie STRG-C. Kein Unterschied.

Stacks erhöhen? Noch nie gehört. Versuch ich mal.

Viren: Das wär merkwürdig, wenn auf beiden komplett getrennten Systemen der gleiche Virus drauf wäre. Beide Systeme sind durch unterschiedliche Virenscanner permanent geschützt.

Jan
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Jan,

laufen denn andere Programme weiter im Hintergrund? Wir hatten solche Fälle schon bei Kunden, bei den das Antivirenprogramm ständig im Hintergrund lief und die Platte bei jedem Zugriff prüfte.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Zu den Stacks: Habe ich mal erhöht auf 8.196. Hat nichts gebracht. Hab dann mal auf 16.392 erhöht, man gönnt sich ja sonst nichts. Das scheint zu funktionieren. Werd ich mal in den kommenden Tagen beobachten.

Danke für den Hinweis.

Aber eine prinzipielle Frage: Sollte Xbase++ das nicht von alleine regeln? Wieso muß ich da manuell eingreifen?

Jan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Rolf,

nichts ungewöhnliches. Auf einem Rechner nur die Sachen, die auf einem Notebook eben so laufen und der Virenscanner, auf dem anderen mein Mail-Programm, aber kein Scanner (der liegt auf dem Server).

Jan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Nochmal die Stacks. Hat doch nichts genützt. War wohl eben Vorführeffekt, das es 10 x hintereinander funktioniert hat. Aber jetzt hängt das Ding sich doch wieder weg.

Jan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,
Jan hat geschrieben:Nochmal die Stacks. Hat doch nichts genützt. War wohl eben Vorführeffekt, das es 10 x hintereinander funktioniert hat. Aber jetzt hängt das Ding sich doch wieder weg.
naja wenigest 10x ...
aber irgendewie hat es wohl "im Prinzip" damit was zu tun.

hm ... wie sieht es dem mit deinem MEM(ory) aus ? (MemWatch)
im welche Grössen Ordung von "statics" sprechen wir überhaupt ?

man könnte natürlich alles in ein Array aufnehmen ...

gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Also,
wenn es zwei getrennte Rechner sind, auf denen das Problem auftritt, dann sollte die Hardware nicht Schuld sein!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Jimmy hat geschrieben:welche Grössen Ordung von "statics" sprechen wir überhaupt
26

Jan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

Jan hat geschrieben:
Jimmy hat geschrieben: welche Grössen Ordung von "statics" sprechen wir überhaupt
26
26 ??? ich dachte irgendwie an "viel mehr" ...

F8 debug ?

gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Jan,

also wenn es Win98 wäre würde ich sagen "getrennter Speicherbereich"
beim Icon auf dem Desktop. Aber wenn 2000 dürfte das doch automatisch aktiviert sein . oder ??

machst du das Fenster mit xbpdialog oder mit xbpcrt ? vielleicht hängt es damit zusammen.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

also ich habe auf meinen Bildschirmen deutlich mehr als 26 Controls sitzen, teilweise auch noch auf Tabpages. Keine Probleme unter Win2000.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi Jan,

ich hab mal kurz in deinen "alten" source geschaut und nun frage ich
mich ob du z.b. sowas mit "static"s meinst :

Code: Alles auswählen

/Feldüberschriften erzeugen
aUeberschrift := {{"Beleg"         
...
                              } }
wenn ja erinnert mich das an den Thread "grosse Array´s" ...

mach "aUeberschrift := {}" und füge den Rest per AADD dazu.

gruss by OHR
Jimmy
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hängt das Programm evtl. in einer Endlos-Schleife? Welche CPU-Auslastung zeigt der Taskmanager für das Programm an?
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hi Olaf,

nö, wie oben beschrieben pendelt die Auslastung immer schön tief. Meist unter 10 %.

Und Endlosschleife bestimmt nicht. Denn mal gehts, mal nicht. Ohne etwas geändert zu haben. Wenn das an einer Endlosschleife liegen würde, dann müsste es ja immer gleich sein.


Hallo Jimmy,

ja, das dürfte der Part sein. Aber vorher hat es üblicherweise funktioniert, jetzt nicht mehr.

Jan
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Jan, irgendwie scheint die Anwendung ja doch in einer Schleife zu hängen, sonst wäre die Prozessor-Auslastung bei "0". Die Anwendung scheint nicht in den App-Event-Handler zu kommen oder im App-Event-Handler selbst liegt die Ursache.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hmmm, merkwürdig. Ich habe gerade mal angefangen alles der Reihe nach auszuschalten. Um den Fehler einzugrenzen.

In jedem Fall kommt der Fehler, wenn diese Zeile da erscheint:

Code: Alles auswählen

oDlg:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)
Das stand so schon immer da drin. NACH dem oDlg:create(). Weil das vor dem :create() ohne Funktion ist (warum eigentlich?)

Da ich aber diese Zeile in jedem Fall haben möchte, das Programm ist schließlich auf volle Bildschirmgröße ausgelegt, habe ich mal ein oDlg:configure() dahintergesetzt. Und siehe da: Es scheint zu laufen! Im Nachinein erscheint mir das logisch, ändere ich was am oDlg, dann muß da eigentlich immer ein :configure() hinter. Keine Ahnung, warum ich das damals, als ich die Eingangsmaske geschrieben habe, vergessen hatte. Aber es lief ja auch einige Monate lang sehr gut. Bis jetzt. Warum auch immer jetzt der große Knall kam. Und warum auch immer der große Knall nur sporadisch kam.

Jan
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Jan,

poste doch uns mal deinen code zu.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Rolf,

versteh ich jetzt nicht. Problem ist doch gelöst. Und die Lehre daraus für jeden von uns ist: Vergiss niemals ein :configure() nach einer Modifikation eines XBParts.

Der Code ist etwas lang... Ich geb ihn Dir gerne rüber, wenn Du gerne möchtest.

Jan
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Jan hat geschrieben:

Code: Alles auswählen

oDlg:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)
Das stand so schon immer da drin. NACH dem oDlg:create(). Weil das vor dem :create() ohne Funktion ist (warum eigentlich?)
Weil man normalerweise eine Methode erst nach Create() aufrufen kann.
Eigentlich sollte auch kein Configure nach Methoden nötig sein.
Aber was ist schon normal ;-)
Gruß
Hubert
Antworten