AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Programm beendet sich selbständig, aber ohne Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Programm beendet sich selbständig, aber ohne Fehler

Ein Thema von Christian Seehase · begonnen am 24. Apr 2005 · letzter Beitrag vom 24. Apr 2005
Antwort Antwort
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#1

Programm beendet sich selbständig, aber ohne Fehler

  Alt 24. Apr 2005, 13:54
Moin Zusammen,

folgendes geschieht bei meinem Programm im Moment:
  1. Programm wird gestartet (F9)
  2. Zu verarbeitende Datei wird geladen (STRG-O, Standard-Öffnen-Dialog, TAction)
  3. Verarbeitung wird gestartet (STRG-T, TAction)
    (hierbei werden ein paar Objekte erzeugt)
  4. Verarbeitung läuft
  5. Verarbeitung beendet
  6. ShowMessage soll angezeigt werden
    (wird ignoriert)
  7. Ergebnis soll gespeichert werden (Standard-Speichern-Dialog)
    (Dialog wird meist aufgerufen)
  8. Objekte werden freigegeben (try/finally-Block)
  9. Programm beendet sich selbständig

Setze ich auf ShowMessage einen Breakpoint, so läuft das Programm auch auf diesen auf.
Bei anschliessendem F8 wird die Meldung allerdings nicht angezeigt, sondern gleich auf die Folgezeile gewechselt, in der der Speicher-Dialog aufgerufen wird.
Ohne Breakpoint wird die Zeile ignoriert.
Der Speicher-Dialog wird, unabhängig vom vorher gesetzten Breakpoint, meistens aufgerufen (aber auch nicht immer).
Im Einzelschritt kann man sehen, dass die Objekte auch wieder freigegeben werden, unabhängig davon, ob der Speicher-Dialog aufgerufen wurde oder nicht.
Anschliessend beendet sich das Programm einfach.
(nein, es steht keine Close o.Ä. am Ende )

Weder MemCheck, noch MemProof zeigen irgendwelche Fehler an.

Das Problem tritt auf bei Compilierung mit D5Pro dt. und D7Pro en. (jeweils mit Update) auf.
Es werden keine Sonderkomponenten benützt, bei D5 habe ich TStringList um die Unterscheidung von Gross-/Kleinschreibung erweitert.

Optimierung ist ausgeschaltet, Stackframes ein, und alle sonstigen Debugger-Informationen und -Prüfungen sind eingeschaltet (auch TD32 für den Linker)
Das Problem tritt allerdings unabhängig von diesen Einstellungen auf.

Der Fehler muss leider mit Sicherheit am Programm liegen, den wenn ich einen bestimmten (auch recht umfangreichen) Teil weglasse tritt das Problem nicht auf.

Hat irgendjemand eine Idee, auf was ich hier mein Augenmerk setzen sollte um den Fehler zu finden?

Vielen Dank im Voraus.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programm beendet sich selbständig, aber ohne Fehler

  Alt 24. Apr 2005, 13:59
Deine Beschreibung deutet wirklich darauf hinn das du irgendwo über den speicher hinaus schreibst. Daher eventuell auch der nicht gezeigte Message-Dialog. Ich denke ohne Source können wir da wenig weiterhelfen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Programm beendet sich selbständig, aber ohne Fehler

  Alt 24. Apr 2005, 17:19
Zitat von Christian Seehase:
[*]Programm beendet sich selbständig[/list]
Ich würde auf einen Stack-Overflow tippen. Hier kommt auch Delphi teilweise nicht dazu dies als Exception mitzubekommen. Erhöhe mal den Stack-Frame um einen sehr hohen Wert. Falls das "beendet sich selbständig" länger dauert ist die Wahrscheinlichkeit einer unendlichen Rekursion sehr hoch.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Programm beendet sich selbständig, aber ohne Fehler

  Alt 24. Apr 2005, 21:20
Moin Zusammen,

erst einmal vielen Dank für die Antworten.

@Bernhard:
Sorry, das hatte ich vergessen zu erwähnen (weil ich auch vergessen hatte, dass ich es getan hatte):
Ich hatte den Stack schon um den Faktor 16 vergrössert.
Ausserdem war das Programm, vor dem unerwarteten Ende, komplett und ansonsten einwandfrei, durchgelaufen.


Des Rätsels Lösung habe ich aber gefunden, und es ist viel einfacher aber höchst peinlich:

Um zu sehen, ob das Programm noch läuft, und an welcher Stelle es sich befindet lasse ich diese in der Statusbar anzeigen.
Damit die Anzeige auch funktioniert, war diese Zeile gefolgt von einem Application.ProcessMessages.

...

Bis auf einmal ....

Da war es Application.Terminate

Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
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