Forum: Compiler & IDEs [GELÖST]arm-elf-gdb springt bei Breakpoint in falschen Code


von Laurenz K. (gimmebottles)


Lesenswert?

Hallo,

ich habe folgendes Problem:

Ich setze einen Breakpoint in der main-Funktion, das Programm wird auch 
richtig unterbrochen. Sobald ich aber Breakpoints setze außerhalb der 
main-Fkt. springt gdb in die falschen Source-Files. Das Program wird 
unterbrochen, das PC-Register befindet sich auch an der Stelle wo der 
Breakpoint gesetzt ist, aber gdb springt eben in völlig falsche 
Source-Files.

Ich arbeite mit code::blocks, aber auch wenn ich nur mit arm-elf-gdb in 
der Kommandozeile arbeite lässt sich der Fehler reproduzieren. Komisch 
ist dass das Debuggen schon mal einwandfrei lief, ich mich aber nicht 
erinnern kann irgendwelche Änderungen vorgenommen zu haben.

Meine Umgebung:
arm-elf-gdb version 7.6
arm-elf-gcc version 4.1.1
openocd version 1.0

Hardware:
LPC2387
USBPROG 4.0

Debugging-Symbole erstelle ich mit der Option "-gdwarf-2".


Hat jemand Erfahrungen was dieses Verhalten hervorrufen kann?

Viele Grüße,

Laurenz

: Bearbeitet durch User
von Marius W. (mw1987)


Lesenswert?

Optimierungen eingeschaltet? Wenn ja, dann kann es passieren, dass der 
GDB die Zuordnung zwischen Source-Code und Assembly nicht mehr 
hinbekommt.

Gruß
Marius

von Laurenz K. (gimmebottles)


Lesenswert?

Optimierung war in der Tat eingeshaltet (-Os), aber auch mit -O0 ändert 
sich nichts.

von Laurenz K. (gimmebottles)


Lesenswert?

So, habe mich nochmal mit dem Problem beschäftigt.
Richtig lösen konnte ich es zwar nicht, nach einer Neuinstallation (gcc, 
newlib, binutils, gdb), jetzt mit arm-none-eabi anstatt arm-elf, hat 
alles wieder funktioniert. Da arm-elf als Target im neuesten gcc-Release 
sowieso nicht mehr verfügbar ist, empfiehlt sich ein Umstieg sowieso 
früher oder später.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.