Valgrind, ein Debugging-Tool zum Erkennen von Speicherfehlern, meldet häufig „Bedingt“. „Springen oder Verschieben hängt von nicht initialisierten Werten ab“-Meldungen. Diese Meldung weist darauf hin, dass ein Wert nicht initialisiert wurde, bevor er in einem bedingten Sprung- oder Verschiebungsvorgang verwendet wird.
Allerdings valgrind Manchmal wird nur der Ort angezeigt, an dem der nicht initialisierte Wert verwendet wird, nicht sein Ursprung. Um dieses Problem zu beheben, verwenden Sie die Option --track-origins=yes. Während es die Verarbeitung von Valgrind verlangsamt, liefert es zusätzliche Informationen über den Ursprung des Werts.
Im Valgrind-Handbuch wird erläutert, dass möglicherweise keine Meldung erfolgt sofort nach Verwendung eines nicht initialisierten Werts. Stattdessen tritt es auf, wenn das Programm versucht, den Wert auf eine Weise zu nutzen, die sich auf sein sichtbares Verhalten auswirken könnte.
Laut den Valgrind-FAQ wird die eifrige Meldung nicht initialisierter Werte aufgrund der hohen Falschrate derzeit nicht unterstützt Positive, die durch legitimes Kopieren nicht initialisierter Werte verursacht werden.
Das obige ist der detaillierte Inhalt vonWarum meldet Valgrind „Bedingter Sprung oder Verschiebung hängt von nicht initialisierten Werten ab' und wie kann ich den Ursprung verfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!