AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmbeendigung debuggen

Ein Thema von texmurphy901 · begonnen am 21. Jan 2009 · letzter Beitrag vom 21. Jan 2009
Antwort Antwort
texmurphy901

Registriert seit: 8. Nov 2006
35 Beiträge
 
#1

Programmbeendigung debuggen

  Alt 21. Jan 2009, 15:11
Hallo allerseits,

ich habe da ein winziges Programm geschrieben, welches ein par Konfigurationen auf einem lokalen Server ändert.
Beende ich nun das Programm über das 'X' im Programmfenster (weiß nicht wie ich es anders beschreiben soll )so bekomme ich eine Zugriffsverletzung.

Nun möchte ich natürlcih heraus bekommen, wo die Zugriffsverletzung her kommt. Da ich keinerlei Code in onClose und onDestroy habe, habe ich keinerlei Code auf den ich einen Breakpoint setzen kann um das 'Aufräumen' zu tracen um zu sehen, ob vielleicht irgendwo ein Objekt entfernt wird, was es nicht gibt.

Also habe ich meinen eigenen "Ende"-Button eingebaut und mit Application.terminate versehen. Setze ich nun einen Breakpoint auf den Befehl, so kommt die Zugriffsverletzung sofort wenn ich das Terminate "trace"(F7). Da im Programmcode keinerlei Befehle mehr kommen, weiß ich nun nicht mehr weiter. Daher meine Frage, ob mir irgendjemand sagen kann, wie ich die Zugriffsverletzung ermitteln kann oder irgendeine Möglichkeit, wie ich das Programmende debuggen kann?


Kurze Zusammenfassung:
* verwende nur VCL-Komponenten und Delphi-Bibliotheken
* erzeuge keine eigenen Objekte und lege keinerlei Objekte mit .Create() an
* es werden im Code keine Objekte mit .Free oder .Destroy entfernt
* Programm besteht nur aus 2 Fenstern

Nun das wizige zum Schluss: unverändert lief das Programm einige Zeit OHNe Zugriffsverletzung und dann habe ich es einmal neu kompiliert (OHNE Code geändert zu haben) und jetzt kommt die Zugriffsverletzung. Ich wollte doch nur eine neue Versionsnummer ......

Danke schon mal alle Helfenden!
Gruß
Murphy
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Programmbeendigung debuggen

  Alt 21. Jan 2009, 15:28
Hallo,

die Fehleradresse hast Du aber?
Wenn ja:
Breakpunkt irgendwo im Programm setzen (z. B. in der DPR vor das Application.Run.
Wenn der Debugger nun dort steht: In der IDE im Menü Suchen auch Laufzeitfehler suchen klicken und dann die Fehleradresse eingeben. Du solltest dann an die Stelle kommen, an der der Fehler auftritt. Eventuell reicht Dir die Info ja dann schon, um das Problem zu erkennen, ansonsten einen Breakpunkt kurz vor die so gefundene Stelle setzen und dann im Debugger F9. Anschließend das Programm auf die "fehlerhafte" Art und Weise beenden. Du solltest dann (mit ein bisserl Glück) bei Deinem soeben gesetzten Breakpoint landen und kannst dann von dort aus weiterforschen.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Programmbeendigung debuggen

  Alt 21. Jan 2009, 15:30
Zitat:
Nun das wizige zum Schluss: unverändert lief das Programm einige Zeit OHNe Zugriffsverletzung und dann habe ich es einmal neu kompiliert (OHNE Code geändert zu haben) und jetzt kommt die Zugriffsverletzung. Ich wollte doch nur eine neue Versionsnummer ......
Ach so wird das gemacht, wenn vom Support die Nachricht kommt: "Wir haben alle Fehler beseitigt. Sie bekommen gleich eine neue Version."

Du kannst da hinein debuggen indem du in den Projekt-Optionen die Debug-DCUs "anmachst" und dich dann in deiner dpr-Datei auf das "end." mit einem Breakpoint setzt. ->F7;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 17:02 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