Ich habe eben das neue AVR Studio 4.15 zusammen mit WinAVR 2008-12-05 installiert und im AVR Studio ein neues Projektfile erstellt für eine alte Anwendung; die Compilierung läuft einwandfrei, das Hex-File kann ich auch flashen, läuft auch. Aber beim Versuch, zu debuggen ("Start Deebugging", mit einem Olimex-JTAG-ICE) lädt AVR Studio die Daten, meldet dann aber "Coordinator: The object file does not contain source code information". Es wurde ein ELF-File geladen. Ich habe das Source File auf dem Bildschirm, aber die erste zu debuggende Zeile, die früher markiert war, wird nun nicht angesprungen. Ich kann zwar starten, dann läuft das Programm, wenn ich aber Break klicke, wird nicht (so wie früher) die jetzt gerade aktive Source-Zeile angezeigt. Woran mag's liegen? Erwartet der Debugger eine andere - oder eine weitere - Datei als das ELF-File, oder fehlt in dieser die Debug-Information? Ich verwende ja das Standard-AVR-Studio-Makefile, das ja für jede Compilierung neu erzeugt wird. Ich denke doch, daß die AVR-Studio-Entwickler das alles so geschrieben haben, daß die Systeme zusammenpassen. Und Source-Debugging ist doch das, was alle wollen?
Günter R. wrote: > Woran mag's liegen? Erwartet der Debugger eine andere - oder eine > weitere - Datei als das ELF-File, oder fehlt in dieser die > Debug-Information? 1) Im .elf/.o muss debug-Info enthalten sein. Das sieht man daran, ob entsprechende Sections (.debug*) nicht leer sind:
1 | avr-size -A <dateiliste> |
Also compilieren mit -gdwarf-2 oder -g3 oder was auch immer
2) Die muss Quelle dort sein, wo sie erwartet wird. AFAIK enthält die
debug-Info nur Verweise auf die Quelle, nicht die Quelle selbst.
Möglicherweise auch abhängig vom denug-Format (dwarf, stabs, ...)
> Und Source-Debugging ist doch das, was alle wollen?
Nö, brauch ich net... :-)
Hallo, Johann, danke für den Hinweis. Im Makefile steht (u.a.) "-gdwarf-2". Aber ich habe ja keinen Einfluß auf das Makefile; dieses wird ja von AVR Studio automatisch erstellt - dafür ist also Atmel verantwortlich bzw. deren Programmierer; und die werden doch wohl daran gedacht haben, daß ihre Kunden das AVR-JTAG-ICE zum Debuggen - nicht nur zum Programmieren - einsetzen können? Ich wende mich hier in erster Linie an AVR-Studio/GCC-Benutzer, die auch Source-Line-Debugging anwenden; funktioniert das bei euch? Bei früheren Versionen funktionierte das bei meinem System; ich verwende für die Produktion immer noch AVR-Studio 4.12 - eben weil nur dort das Source-Line-Debugging bei mir funktioniert - mit 4.15 wollte ich wieder mal testen, ob neuere Versionen laufen - ist aber nicht so. Wenn das jemand erfolgreich laufen hat, könnte er dann mal sein Projektfile hier reinstellen, damit ich es gegen meines vergleichen kann? Danke.
Hi >dafür ist also Atmel verantwortlich bzw. deren >Programmierer; und die werden doch wohl daran gedacht haben, daß ihre >Kunden das AVR-JTAG-ICE zum Debuggen - nicht nur zum Programmieren - >einsetzen können? Falsche Adresse. ATMEL hat mit WINAVR überhaupt nichts zu tun. Das klinkt sich nur in das AVR-Studio ein, und ist das was bei dir nicht funktioniert. Beschwere dich also bei den Machern von WINAVR. MfG Spess
Hallo spess, ist doch die richtige Adresse. Erstens beschwere ich mich ja gar nicht, sondern wundere mich bloß, daß Source-Line-Debugging bei mir nicht funktioniert, zweitens werfe ich nur die Frage zum wiederholten Male in den Raum, ob das bei anderen funktioniert - und bekomme einfach keine Antwort darauf, auch von Dir nicht. Die Compilierung und ggf. das Erzeugen von Debug-Daten wird durch das Makefile gesteuert; ich glaube keinesfalls, daß in WinAVR ein Fehler steckt, eher schon, daß im Makefile eine Schwäche steckt, und das Makefile wird von AVR Studio erzeugt, nicht von mir und von WinAVR schon garnicht. Es geht kurzum genau um folgendes: ruft man im AVR Studio "Start Debugging" auf, so sollte das Projekt über ein JTAG-Interface in den Prozessor geladen werden, dann springt im Source-Fenster der Cursor auf die erste auszuführende Zeile (das ist i.d.R. das erste Statement in der main-Funktion). Dann kann man z.B. "Step Into/Step Over" anklicken und das Programm wird statement-weise ausgeführt (das ist Source-Line-Debugging). Genau das passiert bei mir nicht: das Projekt wird zwar in den Prozessor geladen, aber im Source-Window passiert nichts, auch nicht beim Steppen.
Schon mal versucht, direkt, also ohne AVR-Studio zu debuggen? Gibt dir vielleicht'n Hinweis, wo der Wurm steckt. Also einfach mal den GNU-Debugger avr-gdb ankurbeln...
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.