Heim > Artikel > Backend-Entwicklung > Warum meldet Valgrind Fehler vom Typ „Nicht initialisierter Wert“ nur, wenn der Wert verwendet wird?
Identifizieren der Quelle von Fehlern bei nicht initialisierten Werten
Valgrinds Meldung „Ein bedingter Sprung oder eine bedingte Bewegung hängt von nicht initialisierten Werten ab“ kann rätselhaft sein eins, da es nur angibt, wo der nicht initialisierte Wert verwendet wird, nicht seinen Ursprung. Um dieses Problem zu beheben, stehen die folgenden Optionen zur Verfügung:
In den häufig gestellten Fragen zu Valgrind wird weiter erläutert, dass die eifrige Meldung aller Kopien nicht initialisierter Werte aufgrund der Verbreitung falsch positiver Ergebnisse in legitimen Werten abgelehnt wurde Programme.
Beispiel
Bedenken Sie den Codeausschnitt:
movespeed = stat.speedfactor * speedfac * currentbendfactor.val;
Wenn speedfac ein nicht initialisierter Float ist, meldet Valgrind möglicherweise keinen Fehler Punkt. Wenn der Wert jedoch für einen Ausdruck verwendet wird, wird der Fehler ausgelöst. Dieses Verhalten spiegelt die oben beschriebene Melderichtlinie von Valgrind wider.
Das obige ist der detaillierte Inhalt vonWarum meldet Valgrind Fehler vom Typ „Nicht initialisierter Wert“ nur, wenn der Wert verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!