Forum: Compiler & IDEs GCC/AVR Studio 4.15 - Kein Source-Debugging möglich


von Günter R. (galileo14)


Lesenswert?

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?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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... :-)

von Günter R. (galileo14)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Günter R. (galileo14)


Angehängte Dateien:

Lesenswert?

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.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.