Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi plötzliches Programmende (https://www.delphipraxis.net/86600-ploetzliches-programmende.html)

Corpsman 16. Feb 2007 13:29

Re: plötzliches Programmende
 
Bei meinem Balanced ist das Übrigens auch so.

Und wenn ich das Normal Starte ist dann tatsächlich einfach weg ( weil OpenGL leider auch Bugs hat ).

Wenn ich es aber via Compiler starte dann "Merkt" der den Fehler wirft plötzlich ne AV und springt dann an die entsprechenden Codezeile in der der OpenGL befehl aufgerufen wird.

Vielleicht hast du ja Glück und dein Programm zeigt dir so den fehler.

Oxmyx 16. Feb 2007 14:13

Re: plötzliches Programmende
 
Zitat:

Zitat von Corpsman
Wenn du sagst das du was geändert hast und nun ist der Fehler da dann ist doch Klar wo du ansetzen must.

Am einfachsten machst du die Änderung Rückgängig und schaust ob der Fehler dann tatsächlich weg ist.

Für jeden weiteren Tipp müsstest du wahrscheinlich deutlich mehr Informationen ( sprich Source Code ) zur Verfügung stellen.

Leider ist es in solchen Fällen oft nicht so einfach. Die schlimmsten Fehler sind nämlich die, die irgendwo tief drin sitzen und gar nichts böses machen. Und irgendwann macht man dann etwas, was mit dem Fehler in keinem Zusammenhang steht - und plötzlich stürzt halt mal alles kommentarlos ab. Das können wilde Zeiger sein, die nie eine Schutzverletzung auslösen, und auf einmal durch ne völlig andere Sache das gesamte Programm crashen. In solchen Fällen hilft nur viel Geduld bei der Fehlersuche. ;)

thkerkmann 16. Feb 2007 15:07

Re: plötzliches Programmende
 
Hi,

also ich habe folgende Erfahrung gemacht - zumindest mit D5:

Ein kommentarloser Absturz tritt ein wenn eine Gleitkomma Division durch null oder nahe null geschieht. Anscheinend kann Delphi dort keine Exception erzeugen, oder bekommt den Trap vom Gleitkommaprozessor nicht mit. Wenn ich sowas habe schaue ich mir alle Rechenoperationen genau an. Meist liegt es nicht an grundlegenden Programmfunktionen, sondern - ähnlich wie bei dir - an visuellen Gimmicks wie Progressbar oder so, wo man dann schonmal schlampig mit den Operationen zur Normierung auf 100% umgeht.

Dies ist nur ein Tip und keine Lösung, aber schau mal in diese Richtung, ich wette du findest was :-)

Gruss

turboPASCAL 16. Feb 2007 15:21

Re: plötzliches Programmende
 
Hmmm, ja sowas habe ich auch schon erleben müssen.

Meistens ist irgend ein Überlauf oder Zugrifsverletzung daran Schuld. Wenn Du mit der VCL
arbeitest würde ich dir Vorschlagen einen ApplicationEvent auf die Form zu legen und mit
dessen Hilfe die OnException auszuwerten.

Weiter ist es eine Möglichkeit mit Hilfe von Hier im Forum suchenFastMM oder Hier im Forum suchenMemProof nach Fehlern zu suchen.

// Edit:

MemProf zu MemProof. :wall:

Sidorion 16. Feb 2007 15:31

Re: plötzliches Programmende
 
Kann das sein, dass Du Threads benutzt?
Bei denen ist nämlich das Problem, wenns ne exception gibt, das Verhalten innerhalb und ausserhalb des Debuggers ein völlig anderes ist: Im Debugger handelt Delphi das Ganze und die Applikation läuft weiter (man kriegt also nichtmal was davon mit). Ausserhalb haldelt das das BS und beendet die Applikation kommentarlos.
Falls Du Treads benutzt, schau also mal nach, ob es zu Verletzungen innerhalb des Threads kommt.

sh17 16. Feb 2007 19:03

Re: plötzliches Programmende
 
Zitat:

Zitat von Sidorion
Kann das sein, dass Du Threads benutzt?

Was war auch bei den VirtualShellTools der Fall. Nur den Fehler da selbst zu suchen, kann man vergessen.

Tritt den der Fehler wirklich so "zufällig" auf, tritt er auf jedem Rechner auf?

MStoll 16. Feb 2007 19:36

Re: plötzliches Programmende
 
Ich hatte das Problem auch mal mit 2 verschiedenen Ursachen (unabhängig voneinander):
1. ein Stack-Overflow (was auf dem einen Rechner eine Exception verursachte, auf dem anderen das Programm verschwinden ließ wie bei dir jetzt)
2. der FastShareMem-Memory-Manager.

Der Memory-Manager war das schlimmere Problem:
Ganz tückisch war, dass sich mein Programm erst nach langer Zeit (1 - 5 Stunden) beendet hat, so war das Debuggen recht schwierig.

Ich habe auch ca. 25.000 Zeilen Code, benutze Threads, einige DLLs, tausche mit denen Objekte, strings und dyn. Arrays aus.
Erst seit ich den FastShareMem durch den NexusDB-MM ersetzt habe, funktioniert alles einwandfrei.

Wenn du also einen anderen Speichermanager benutzt, tausch ihn mal aus.

Gruß
Michael

Pichel 16. Feb 2007 20:02

Re: plötzliches Programmende
 
Also hab jetzt unter Delphi 7 Pro das Programm laufen lassen und bekomme nen EStackOverflow Meldung Stack Überlauf.

Gehe ich dann schrittweise weiter läuft er in das SetText Event von TJvSpinEdit

und danach kommt CPU fenster mit push ebx womit ich nun nixh mehr anfangen kann.

sh17 16. Feb 2007 20:09

Re: plötzliches Programmende
 
Wenns denn das ist, würde ich es testweise gegen einen normales SpinEdit austauschen, oder im SVN von der JVCL die aktuellen Quellen mit Deinen vergleichen. Man muss ja nicht sinnlos rumsuchen.

Christian Seehase 16. Feb 2007 21:29

Re: plötzliches Programmende
 
Moin Pichel,

die Verwendung von Bei Google suchenMemProof (@Matti: Mit zwei o ;-)) kann eventuell auch weiterhelfen.

Hast Du, zum Testen, auch mal solche Optionen wie RangeChecking aktiviert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz