Variablennutzung anzeigen
Hallo zusammen,
ich habe wieder einmal ein kleines Problem (wenn man es so nennen kann). Ich suche eine Möglichkeit mir anzeigen zu lassen, welche Variablen ich wo nutze.
Für besseres Verständis ein Beispiel. Ich habe folgenden Code
Jetzt würde ich gerne eine Übersicht heraus bekommen, die mir sagt, welche Variable ich wo nutze.
Etwa in dieser Form
main-> global int f
-> local a, b
test -> local c
Hat irgendjemand vllt schon mal sowas gefunden, oder nutzt es selbst?
Schöne Grüße
Thomas
ich habe wieder einmal ein kleines Problem (wenn man es so nennen kann). Ich suche eine Möglichkeit mir anzeigen zu lassen, welche Variablen ich wo nutze.
Für besseres Verständis ein Beispiel. Ich habe folgenden Code
|
|
C/C++-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
int f = 23; void main(void) { int a = 0; int b = 1; a = f; b = 5; .... return; } int test(void) { char c; ... return c; } |
Jetzt würde ich gerne eine Übersicht heraus bekommen, die mir sagt, welche Variable ich wo nutze.
Etwa in dieser Form
main-> global int f
-> local a, b
test -> local c
Hat irgendjemand vllt schon mal sowas gefunden, oder nutzt es selbst?
Schöne Grüße
Thomas
uhm... debuging? Breakpoint? eventuell hat das ja deine IDE das auch drin irgendwo..
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Ich bin im Mikrocontrollerbereich und nutze MPLAB von Microchip. Da das aber in Sachen IDE nicht die Beste ist, verwende ich für reine Code schreiben auch schon mal Eclipse oder Notepad++.
Ich wurde aber glaub ich ein wenig falsch verstanden. Ich möchte diese "Zusammenfassung" nicht während dem Debuggen oder so, sondern gesondert vom Code erstellen. Wenn ich ein komplettes Projekt habe, würde ich gerne eine Übersicht, wo ich welche Variable verwende, damit ich im Nachhinein prüfen kann, ob ich nicht irgendwo auf ne globale Variable zugreif, wo ich das gar nicht will.
printf() ist leider etwas schwierig im Bereich Mikrocontroller
Ich wurde aber glaub ich ein wenig falsch verstanden. Ich möchte diese "Zusammenfassung" nicht während dem Debuggen oder so, sondern gesondert vom Code erstellen. Wenn ich ein komplettes Projekt habe, würde ich gerne eine Übersicht, wo ich welche Variable verwende, damit ich im Nachhinein prüfen kann, ob ich nicht irgendwo auf ne globale Variable zugreif, wo ich das gar nicht will.
printf() ist leider etwas schwierig im Bereich Mikrocontroller
ja dass du explizit in jeder deiner funktion eine Logdatei erstellt die etwa so ausschaut:
"Function: xyz bla bla---
Variable1: int bla = 2
Variable2: string foo = 'bar'
"
usw... wie gesagt, normalerweise wird das von einer IDE geregelt im Borland Builder C++ kann kurz vom ende des Programms einen Breakpoint setzen und alle Variablen mit ihren Inhalt anzeigen lassen(nur nicht in welcher Methode die befüllt wird)
"Function: xyz bla bla---
Variable1: int bla = 2
Variable2: string foo = 'bar'
"
usw... wie gesagt, normalerweise wird das von einer IDE geregelt im Borland Builder C++ kann kurz vom ende des Programms einen Breakpoint setzen und alle Variablen mit ihren Inhalt anzeigen lassen(nur nicht in welcher Methode die befüllt wird)
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Also an sich die Variablen bekomm ich schon raus. Den aktuellen Inhalt auch. Das stellt nicht das Problem dar. Ich würde nur gerne wissen, in welcher Funktion die Variable genutzt wird, um zu prüfen ob ich die nicht versehentlich in der falschen Funktion nutze, die eigentlich nicht drauf zugreifen soll.
Ich hab gesehen, das Eclipse bei der Suche nach dem Variablennamen schon einen guten Ansatz bietet. Hier wird der Dateiname und darunter immer jede Zeile in der der Variablenname gefunden wird angezeigt. Der Aufbau des gefundenen Eintrags ist dann <Funktion>, <Zeilennummer>, <Komplette Zeile in der das gesuchte Wort steckt>
Jetzt bringt die Suche halt nur alle Zeilen einer Funktion in der die Variable genutzt wird. Ich würde die Funktion gerne nur einmal da haben.
Ich glaub wir reden ein klein wenig aneinander vorbei, deswegen hab ich mal nen kleines Bild gemacht, wie das aussehen könnte.
Ich würde die Darstellung wie under Variablen... bevorzugen
Ich hab gesehen, das Eclipse bei der Suche nach dem Variablennamen schon einen guten Ansatz bietet. Hier wird der Dateiname und darunter immer jede Zeile in der der Variablenname gefunden wird angezeigt. Der Aufbau des gefundenen Eintrags ist dann <Funktion>, <Zeilennummer>, <Komplette Zeile in der das gesuchte Wort steckt>
Jetzt bringt die Suche halt nur alle Zeilen einer Funktion in der die Variable genutzt wird. Ich würde die Funktion gerne nur einmal da haben.
Ich glaub wir reden ein klein wenig aneinander vorbei, deswegen hab ich mal nen kleines Bild gemacht, wie das aussehen könnte.
Ich würde die Darstellung wie under Variablen... bevorzugen
ich habe dich schon richtig verstanden
aber wie ich bereits sagte, zu fuß debuggen oder eigene datei anlegen und dann einen viewer zu der datei programmieren oder dich umsehen eventuell gibt es IDEs die sowas von haus aus unterstüzten..
aber wie ich bereits sagte, zu fuß debuggen oder eigene datei anlegen und dann einen viewer zu der datei programmieren oder dich umsehen eventuell gibt es IDEs die sowas von haus aus unterstüzten..
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Ja, das mit zu Fuß is immer so ne Sache. Hab schon öffters mal versucht mir zu jeder Funktion was zu notieren, damit ich danach dann die nötigen Infos hab. Aber muss man halt auch konsequent sein und wenn ich voll im Element bin, vergess ich sowas immer 
Naja, mal gucken, vllt schreib ich mir mal bei Gelegenheit eine eigene Applikation.
Danke für die Hilfe

Naja, mal gucken, vllt schreib ich mir mal bei Gelegenheit eine eigene Applikation.
Danke für die Hilfe
Es ist für mich momentan nicht ersichtlich welchen compiler du verwendest, aber eventuell kannst du ein Präprozessor Makro definieren.
|
|
C/C++-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#define INTEGER(var,val,nil) \ int var####nil = val; \ FILE* logfile = fopen("/tmp/logfile","a"); \ if (logfile) \ { \ fprintf(logfile, \ "Declared integer '%s' in function '%s', from '%s' at line %i\n", \ #var,__FUNCTION__,__FILE__,__LINE__); \ fclose(logfile); \ } #include <stdio.h> int main(int argc, char** argv) { INTEGER(a,0,); a = 1; } |
Wenn du Eclipse benutzt...da gibt es doch jede Menge profiler-tools die man nutzen kann...
schau mal hier:[url]http://eclipse-plugins.2y.net/eclipse/plugins.jsp?category=Profiling[/url]
schau mal hier:[url]http://eclipse-plugins.2y.net/eclipse/plugins.jsp?category=Profiling[/url]
Ähnliche Themen
-
Feedback-Forum »-
Anzeigen-Scout.com
(9. Juni 2004, 20:28)
-
Support intern »-
Meine seite ist gesperrt
(8. Mai 2010, 22:09)
-
Feedback-Forum »-
Pangu.de - Suchmaschine
(12. März 2005, 13:25)
-
PHP »-
image anzeigen aus DB
(23. April 2004, 16:55)
-
Support intern »-
[Hinweis] Fehler gefunden
(3. November 2002, 16:27)


