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
Optimierungen eingeschaltet? Wenn ja, dann kann es passieren, dass der GDB die Zuordnung zwischen Source-Code und Assembly nicht mehr hinbekommt. Gruß Marius
Optimierung war in der Tat eingeshaltet (-Os), aber auch mit -O0 ändert sich nichts.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.