AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE IDE: Compiler Einstellung für nicht initialisierte Variablen
Thema durchsuchen
Ansicht
Themen-Optionen

IDE: Compiler Einstellung für nicht initialisierte Variablen

Ein Thema von Athris · begonnen am 10. Sep 2021 · letzter Beitrag vom 10. Sep 2021
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.550 Beiträge
 
Delphi 12 Athens
 
#1

AW: IDE: Compiler Einstellung für nicht initialisierte Variablen

  Alt 10. Sep 2021, 10:29
Für lokale Variablen und Result wird Speicher nicht initialisiert. (Ausnahme sind gemanagte Typen wie String oder Interface, wo Delphi von sich aus das Speichermanagement sicherstellen muß)

Sie haben also den Wert, welcher ein vorhergehender Funktionsaufruf dort auf dem Stack hinterlassen hatte.


Es "kann" immer der selbe Wert sein, wenn die Aufrufe in gleicher Reihenfolge sind, aber es muß nicht und somit ist der Wert "unbestimmt", also zufällig.
Und wenn ein neuer Compiler anderen Code erzeugt oder Variablen anders im Speicher ablegt, dann ist es nunmal plötzlich anders.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Sep 2021 um 10:36 Uhr)
  Mit Zitat antworten Zitat
Athris

Registriert seit: 18. Nov 2014
28 Beiträge
 
Delphi XE2 Professional
 
#2

AW: IDE: Compiler Einstellung für nicht initialisierte Variablen

  Alt 10. Sep 2021, 10:32
Mit der Antwort kann ich leben, vielen Dank!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: IDE: Compiler Einstellung für nicht initialisierte Variablen

  Alt 10. Sep 2021, 10:48
Ich kann nichts mehr hinzufügen, genauso wie erklärt ist es.

Ich kann nur aus eigener Erfahrung berichten dass wir exakt den Fall auch hatten- Eine alte, nicht mehr gewartete Delphi-DLL mit so vielen Warnmeldungen über nicht initialisierte Variablen dass da auch keiner mehr geschaut hat. Lief viele Jahre lang.

Als sie eines Tages durch einen neueren Delphi-Compiler gejagt wurde gingen vereinzelte Dinge nicht mehr, keiner wusste weshalb. Lösung war exakt das gleiche: Eine nicht initialisierte Variable führte zu einer Zugriffsverletzung, und früher hat es bei einem älteren Compiler grade so gepasst dass nichts in sich zusammenbrach...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.550 Beiträge
 
Delphi 12 Athens
 
#4

AW: IDE: Compiler Einstellung für nicht initialisierte Variablen

  Alt 10. Sep 2021, 10:54
Jo, 64 Bit ist immer mit StackFrames und es gibt auch nur noch eine Calling-Convension (sieht witziger Weise fast wie die von Delphi aus ),

aber es macht die Sache mit dem Stack viel einfacher.


Und zusätzlich seit 'ner kurzen Weile auch direkt eine WinAPI, zum lesen des Stacks und der Debuginfos.
Nur blöd, dass Delphi seine eigenen Debuginfos hat und man nicht aktivieren kann, dass man auch die "normalen" mit im Programm einkompiliert haben möchte.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Sep 2021 um 10:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#5

AW: IDE: Compiler Einstellung für nicht initialisierte Variablen

  Alt 10. Sep 2021, 11:07
Nur blöd, dass Delphi seine eigenen Debuginfos hat und man nicht aktivieren kann, dass man auch die "normalen" mit im Programm einkompiliert haben möchte.
Das kann man ja im Post Build Ereignis korrigieren. Aber ja: Ich fände es auch viel sinnvoller, wenn Delphi dies als Option mitbringen würde.
Sebastian Jänicke
AppCentral
  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 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz