Startprobleme
Moderator: Moderatoren
- Jan
- 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
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
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
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
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
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
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.
- AUGE_OHR
- 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
hi,
LINK_FLAGS = /STACK:8196
gruss by OHR
Jimmy
vielleicht mal im Project.xpj den Stack erhöhen ?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.
LINK_FLAGS = /STACK:8196
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Jan,
ALT-C - nicht Strg-C!!
Viele Grüße,
Martin
ALT-C - nicht Strg-C!!
Viele Grüße,
Martin
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.
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
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
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
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
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
Danke für den Hinweis.
Aber eine prinzipielle Frage: Sollte Xbase++ das nicht von alleine regeln? Wieso muß ich da manuell eingreifen?
Jan
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
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
naja wenigest 10x ...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.
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
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Also,
wenn es zwei getrennte Rechner sind, auf denen das Problem auftritt, dann sollte die Hardware nicht Schuld sein!
Viele Grüße,
Martin
wenn es zwei getrennte Rechner sind, auf denen das Problem auftritt, dann sollte die Hardware nicht Schuld sein!
Viele Grüße,
Martin
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.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
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 :
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
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"
...
} }
mach "aUeberschrift := {}" und füge den Rest per AADD dazu.
gruss by OHR
Jimmy
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
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
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
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
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: 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
In jedem Fall kommt der Fehler, wenn diese Zeile da erscheint:
Code: Alles auswählen
oDlg:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)
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
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Weil man normalerweise eine Methode erst nach Create() aufrufen kann.Jan hat geschrieben:Das stand so schon immer da drin. NACH dem oDlg:create(). Weil das vor dem :create() ohne Funktion ist (warum eigentlich?)Code: Alles auswählen
oDlg:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)
Eigentlich sollte auch kein Configure nach Methoden nötig sein.
Aber was ist schon normal
Gruß
Hubert
Hubert