AGB  ·  Datenschutz  ·  Impressum  







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

Programmabsturz verursachen

Ein Thema von skyobserver · begonnen am 10. Jun 2008 · letzter Beitrag vom 10. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Programmabsturz verursachen

  Alt 10. Jun 2008, 09:15
Hallo zusammen!

Das mag jetzt etwas merkwürdig klingen, aber ich versuche ein Programm dazu zu bringen
z.B. auf Knopfdruck so abzustürzen, daß es aus dem Speicher fliegt.

Zur Erklärung: Ich teste eine Watchdog Komponente, welche abgestürzte Programme melden
soll. Nur bekomme ich mein Programm nicht dazu aus dem Speicher zu fliegen (Ich weiß
Programmierer versuchen normalerweise das Gegenteil zu erreichen...)!

Folgende Versuche verursachen zwar eine Exception bleiben aber im Speicher und
funktionieren sogar weiter...

Delphi-Quellcode:
asm
  MOV AX, [4711]
end;
Delphi-Quellcode:
procedure StackOverflow;
begin
  StackOverflow;
end;
Das Programm wurde außerhalb der IDE aufgerufen.

Wo liegt mein Fehler? (Kann man das überhaupt so sagen?)
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 09:19
Wie wär's mit einem einfachen

Halt(0); Obs abstürzt oder nicht, dürfte doch egal sein. Aus dem Speicher ist aus dem Speicher.
Daniel Schuhmann
  Mit Zitat antworten Zitat
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 09:27
Das ist genau das, was ich gesucht habe!

Besten Dank, auf Halt bin ich irgendwie nicht gekommen...
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 09:30
Du kannst die Anwendung auch ganz normal beenden. Dazu braucht es kein Halt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 09:36
Ich wollte eine abnormale Programm-Beendung erreichen.
Der WatchDog wird beim Close deaktiviert, so daß man ein
Programm durchaus normal beenden kann, ohne das Alarm
ausgelöst wird...

@Schuhmann: Darauf zu kommen war warscheinlich zu einfach für mich...

Wieso dauert es eigentlich so lange bis ich eine Antwort
bekomme, wenn ich Frage wie ich etwas richtig mache?
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#6

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 10:41
Zitat von skyobserver:
Wieso dauert es eigentlich so lange bis ich eine Antwort
bekomme, wenn ich Frage wie ich etwas richtig mache?
weil es einfacher ist etwas falsch zu machen als richtig
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 10:50
Ist das eigentlich das Gleiche

Form.close = halt

oder hat Halt irgenwelche vorteile

Wäre es gut

in seinem beendenbutton Close und Halt(0) zu schreiben???
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 11:03
Nein, ist nicht das gleiche. Im Allgemeinen sollte man die Anwendung immer mit Close beenden. Halt schmeißt das Programm ohne Rücksicht auf freigegebene Resourcen raus.
Daniel Schuhmann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 11:04
Zitat von OH:
Die Prozedur Halt löst einen Programmabbruch aus und gibt die Steuerung an das Betriebssystem zurück. Um eine visuelle Delphi-Anwendung normal zu beenden, rufen Sie Application.Terminate auf. Exitcode ist ein optionaler Ausdruck, der den Exit-Code des Programms angibt.
Bei halt() wird das Programm "brutal" abgebrochen, ohne etwaiige Aufräumarbeiten. Das Closen des Hauptformulars ist auf jeden Fall vorzuziehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#10

Re: Programmabsturz verursachen

  Alt 10. Jun 2008, 14:55
Zitat von DeddyH:
...
Bei halt() wird das Programm "brutal" abgebrochen, ohne etwaiige Aufräumarbeiten. Das Closen des Hauptformulars ist auf jeden Fall vorzuziehen.
Genau das brutale rausschmeißen ist ja gewünscht. Schließt man das Hauptfenster kommen Aufräumarbeiten zu stande, die gar nicht kommen sollen, denn das hier herschende Motto ist: möglichst schnell und brutal beenden. Laut MSDN macht PostQuitMessage() auch schon aufräumarbeiten, indem es WM_CLOSE verschickt. Halt erscheint mir brutal genug, ansonsten schmeiß die Unit SysUtils raus und löse eine Assertion aus, die auf jeden Fall negativ verläuft (->Resultat: Laufzeitfehler 127, Programmabbruch)

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:39 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