Seite 1 von 1

Speicherzugriffsfehler

Verfasst: So Aug 29, 2021 4:09 pm
von darkwin
Hallo, ich habe ein Programm das von einer Steuerung Daten bekommt und endlos läuft.
Die Daten von der Steuerung sind soweit strukturiert.
Somit sollten die Variablen im Programm alle groß genug dimensioniert sein.

Trotzdem stürzt mein Programm hin und wieder mit einem Fehler ab:

Code: Alles auswählen

Speicherzugriffsfehler (Speicherabzug geschrieben)
Dort steht das etwas geschrieben wurde. Kann ich dort den Fehler finden oder gibt es etwas was ich aktivieren kann damit ich weiß bei welcher Zeile Code der Fehler auftritt?

Kann mir jemand einen Tipp geben wie ich solch einen blöden Fehler selbst finden kann?

In den Foren habe ich auch viele Fragen dazu gefunden, aber dort wurden 5 Zeilen Code gepostet um zu zeigen wo der Fehler liegt.
Mein Code hat mittlerweile einen Umfang von über 400 Zeilen.
Da macht es meiner Meinung wenig Sinn alles hier rein zu Posten.

Ich wäre schon froh wenn ich wüsste an welcher Stelle genau das Programm abbricht.

Re: Speicherzugriffsfehler

Verfasst: So Aug 29, 2021 6:43 pm
von Xin
Unter Visual-Studio bleibt das Programm beim Debuggen an der entsprechenden Stelle stehen.

Unter Linux kannst du beispielsweise mit "gdb programmname" debuggen. Anschließend startest Du das Programm mit "run".
Das Programm muss mit dem GCC und der Option -g kompiliert sein. Dann zeigt Dir gdb in welcher Zeile das Programm abstürzt.

Re: Speicherzugriffsfehler

Verfasst: Mi Sep 01, 2021 5:08 pm
von darkwin
Hi, danke werde ich ausprobieren.
Ich nutze Visual Studio Code. Vielleicht klappt das mit dem Debug ja auch.

Den Debug Knopf hatte ich bisher nicht benutzt weil ich in einem Tutorial nur gesehen habe das dort Haltepunkte und Variablen abgefragt werden können.
Dass das Programm dann mit einer brauchbaren Fehlermeldung abstürzt wusste ich nicht.

Re: Speicherzugriffsfehler

Verfasst: Mi Sep 01, 2021 6:53 pm
von Xin
darkwin hat geschrieben:
Mi Sep 01, 2021 5:08 pm
Dass das Programm dann mit einer brauchbaren Fehlermeldung abstürzt wusste ich nicht.
Peng ist jetzt keine brauchbare Fehlermeldung, aber ein Anfang. Und man weiß halt, wo es knallt. :-)