Variablen werden von geisterhand überschrieben

Gast #238328
Hallo.
Ich hab ein relativ groses programm mit WINAVR für einem ATMega16
geschrieben. Jetzt werden plötzlich aus Variablen verändert, ohne das
die funktion dafür ausgeführt wird. Kann es sein, das WINAVR Variablen
überschneiden lässt (evtl schreib ich auch über das ende eines Buffers
.). Anders kann ich es mir nicht erklähren. Hab da einen verdacht,
welche variable es sein könnte. kann ich irgendwie feststellen, wo sich
eine globale variable im SRAM befindet / befinden wird. Gibt es da eine
möglichkeit, damit der GCC das ausspuckt ?

Gruß, Frank
Gast #238329
kenn mich mit avr nicht gut aus also nur mal so ein verdacht:
wie sieht es mit deinem stack aus? vielleicht ist dieser zu klein bzw.
überhaupt nicht vorhanden.
Gast #238331
An Stack overslow hab ich auch zuerst gedacht. Es lag aber an
tatsächlich an einem buffer, der über das ende hinaus beschrieben
wurde.
und die Passende stelle im code hab ich nach 2 Std gefunden. Eine liste
der Variablen funktionen hätte mir einige zeit erspart.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.