Forum: Mikrocontroller und Digitale Elektronik AVR Studio zu Funktion springen


von Alex (Gast)


Lesenswert?

Hallo,
ich habe eine (vielleicht) blöde Frage: Ich benutze AVR Studio mit GCC 
um in C zu programmieren. Ich bearbeite gerade ein fremdes Projekt, 
welches aus mehreren Source-Dateien besteht.
In der main-Datei werden verschiedene Funktionen aufgerufen, die sich in 
den anderen c-Dateien befinden. Nun weiss ich jedoch nicht immer, wo. 
Gibt es eine Möglichkeit, direkt von der Stelle im Code zu der Funktion 
in die andere Datei zu springen? Ohne erst in den ganzen Files per Suche 
zu suchen um dann die c-Datei zu oeffnen, darin den Namen zu suchen und 
dahinzu springen?
Ich habe mit Eclipse programmiert, da ist das sehr gut / einfach gelöst.

Vielen Dank fuer die Mühe!
Alex

von Thomas E. (thomase)


Lesenswert?

Deklariere die Funktionen in einer Headerdatei.

So z.B.

Inhalt von sourcefile1.h

void func1(void);
void func2(void);


in deiner main.c

#include "sourcefile1.h"


mfg.

von Oliver (Gast)


Lesenswert?

Alex schrieb:
> Gibt es eine Möglichkeit, direkt von der Stelle im Code zu der Funktion
> in die andere Datei zu springen?

Nein, das kann der Studio-Editor nicht. Bau das Projekt in Eclipse auf, 
so schwierig ist das doch nicht.

Oliver

von Alex (Gast)


Lesenswert?

schade.
... aber debuggen kann ich doch in eclipse nicht.

von Thomas E. (thomase)


Lesenswert?

Alex schrieb:
> schade.
>
> ... aber debuggen kann ich doch in eclipse nicht.

Ich glaube jetzt verstehe ich auch, was du willst.

Beim debuggen, musst du natürlich schon einen Breakpoint setzen, wenn du 
in eine andere Funktion springen willst.

Das Durchsuchen des gesamten Projektes nach der Funktion kannst du dir 
allerdings ersparen, indem du den Funktionsaufruf mit einem Breakpoint 
versiehst. Dann bleibt der Debugger da stehen. Wenn du jetzt <F11> 
drückst geht er genau auf den ersten Befehl der aufgerufenen Funktion.

Dann setzt du dort mit <F9> deinen Breakpoint, drückst <F5> und er 
bleibt bei deinem neuen Breakpoint stehen.

War's das?

mfg.

von Alex (Gast)


Lesenswert?

Hallo Thomas,
nein, das ist nicht mein Problem.
Also der Funktionsaufruf klappt, mit Headerdateien kann ich auch 
umgehen, die Frage war, ob es einen Weg gibt, um beim Editieren von 
einer Zeile der Main-Datei, welche einen Funktionsaufruf beinhaltet, 
dessen Zielfunktion sich in einer anderen c-Datei des Projektes 
befindet, zu springen. Direkt. So wie das in Eclipse moeglich ist.
Ich denke, Oliver hat mich soweit verstanden und seiner Antwort entnehme 
ich, dass es nicht möglich ist. Darauf bezog sich auch meine Antwort. 
Ich meinte damit, dass ich das Projekt schon in Eclipse exportieren 
koennte, aber da geht ja das debuggen mit dem JTAG nicht.
Vielen Dank trotzdem für Deine Mühe.
Schönen Sonntagabend noch.

von Oliver (Gast)


Lesenswert?

Alex schrieb:
> schade.
> ... aber debuggen kann ich doch in eclipse nicht.

Tja, das Leben ist mühsam...

Du wirst mit den zwei Systemen parallel arbeiten müssen. Ich mach es 
schon seit langem so, editieren in Eclipse, debuggen im Simulator mit 
Studio (bzw. VMLAB).

Wobei m.E. debuggen per JTAG auf dem Zielsystem doch mit Eclipse/gdb 
geht, nur debuggen im Simulator geht dort nicht (sinnvoll).

Oliver

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.