Debugger mit globaler Variable geht nicht

Gast #1478412
Lesenswert?

Hallo!
Ich habe ein sehr seltsames Problem mit dem gdb unter eclipse.
Ich debugge eine Testanwendung auf einem Atmega16 mit einem AVRDragon 
über
die JTAg-Schnittstelle.
Wenn ich folgendes Programm debugge, funktioniert das ganze einwandfrei:
1
int main(void)
2
{
3
  uint8_t global;
4
  DDRB = 0xff;
5
  for(;;)
6
  {
7
    global++;
8
    PORTB = global;
9
  }
10
}
Habe einen Breakpoint auf global++ gesetzt. Klappt alles wie erwartet, 
Debugger hält, Zähler wird erhöht, LEDS an PortB werden gesetzt.


Mach ich die Variable "global" global :
1
uint8_t global;
2

3
int main(void)
4
{
5
  DDRB = 0xff;
6
  for(;;)
7
  {
8
    global++;
9
    PORTB = global;
10
  }
11
}

geht gar nichts mehr. Das Dissassembly zeigt mir, dass nach Betreten der 
main das Programm nach .do_clear_bss_start+2 springt, und von dort 
wieder in die main, und von dort wieder nach .do_clear_bss_start+2 ...

Was soll das? Hat jemand eine Erklärung dafür oder stehe ich gerade auf 
dem Schlauch??

Viele Grüße
Frank

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren