Praktische Debugging-Fähigkeiten für Code

1. Grundlegende Schritte zum Debuggen
1. Finden Sie bei laufendem Programm heraus, ob ein Programmfehler vorliegt, und lokalisieren Sie ihn.
2. Markieren Sie den Fehler.
3. Bestimmen Sie die Ursache des Fehlers.
4. Schlagen Sie eine Lösung zur Behebung des Fehlers vor
. 5. Korrigiert Programm, erneut ausführen, erneut testen
2. Debuggen und Freigeben
▪Debug
Debug, auch Debug-Version genannt, enthält normalerweise Debugging-Informationen und führt keine Optimierung durch, um Programmierern das Debuggen des Programms zu erleichtern. Wenn das System jedoch ausgeführt wird, wird es nicht optimiert generiert eine Datei mit relativ großem Speicher, wie unten gezeigt:

Die von Debug generierte .exe-Datei ist 39 KB groß. Warum heißt es also, dass die von ihr generierte Datei groß ist? Lesen Sie weiter.

▪Release
Release, auch Release-Version genannt, ist, wie der Name schon sagt, die Version, die beim Start eines Produkts veröffentlicht wird. Sie wird im Allgemeinen durch verschiedene Optimierungen optimiert, damit die Größe und Laufgeschwindigkeit des Programms optimal sind. Wenn das System Release verwendet Bei der Ausführung wird eine relativ kleine Datei generiert, wie unten gezeigt:
Der gleiche Code ist 39 KB groß, wenn er unter Debug ausgeführt wird, und 9 KB, wenn er unter Release ausgeführt wird. Daher hat Release den Vorteil, Dateien zu generieren, die weniger Speicher verbrauchen, aber das ist auch der Fall Der Nachteil, relativ klein zu sein. Was für ein toller Ort.

#include<stdio.h>
int main() {
	int i = 0;
	int arr[10] = { 0 };
	for (i = 0;i <= 12;i++) {
		arr[i] = 0;
		printf("good\n");
	}
	return 0;
}

Bevor Sie das Programm ausführen, können Sie anhand des Codes einen Fehler finden, d ] und arr[11] werden aufgerufen, arr[12] kann eine Ausnahme im Programm verursachen.
3. Verwenden Sie Debug, um den entsprechenden Fehler zu finden.
Nach unserem normalen Verständnis, wenn der obige Code auf i = 10 läuft, arr[i ]=0 wird nicht erfolgreich sein. Da die Länge des Arrays nur 10 beträgt, sollte das Programm eine Fehlermeldung melden, aber wenn das Programm ausgeführt wird, läuft es endlos weiter. Daher setzen wir einen Haltepunkt in Zeile 7 des Codes und rufen das Überwachungsfenster im Debug-Modus auf, um die Wertänderungen während der Ausführung des Codes weiter zu analysieren.
Wenn i=10,11, sind die numerischen Ergebnisse von arr[i] die gleichen:

Aber wenn i=12, wird der Wert von arr[i] plötzlich zu:

Beim weiteren Debuggen ändert sich der Wert von i plötzlich auf 1 und der Wert von arr[i] ist 0:

Wenn wir mit dem Debuggen fortfahren, können wir sehen, dass der Wert von i zwischen 0 und 11 liegt, der Wert von arr[i] alle 0 ist und wenn i=12 ist, ist der Wert von arr[i] immer noch 12, was derselbe ist wie in der obigen Situation, und gehen Sie dann nach unten. Beim Ausführen wird das Ergebnis weiterhin in einer Schleife ausgeführt, was zu einer Endlosschleife führt.
Rufen Sie dann das Speicherfenster im Debugging-Modus auf, um die Änderungen im Speicher des arr-Arrays und i während des Debuggens anzuzeigen.

Aus dem Überwachungsfenster und dem Speicherfenster ist ersichtlich, dass die Adressen von arr [12] und i übereinstimmen. Wenn i = 12 ist, läuft das Programm zu arr [i] = 0, dh arr [12] = 0. Weil ihre Adressen gleich sind, ändert sich von nun an auch der Wert von i auf 0, was die Schleifenbedingung erfüllt, sodass die Schleife fortgesetzt wird. Jedes Mal, wenn i = 12, wird sein Wert auf 0 gesetzt, wodurch eine Endlosschleife entsteht.

Dies ist eine verwandte Frage im schriftlichen Test von Nice Company. Beim Erlernen des Codes sind 20 % die Syntax und 80 % das Debuggen von Code. Das Debuggen von Code ist für unsere zukünftige Arbeit sehr wichtig. Das Erlernen von Debugging-Fähigkeiten wird es uns ermöglichen Ich habe von meiner Arbeit sehr profitiert und fühle mich wohl!

Supongo que te gusta

Origin blog.csdn.net/whwwyshf/article/details/133057234
Recomendado
Clasificación