Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Bulbs

Eroberer

Dabei seit: 31.01.2010

Beiträge: 53

 

1 Zum Seitenanfang

Dienstag, 18. Januar 2011, 16:12

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



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
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

2 Zum Seitenanfang

Dienstag, 18. Januar 2011, 16:22

uhm... debuging? Breakpoint? eventuell hat das ja deine IDE das auch drin irgendwo..
Mein kleines Projekt
-Cruel Online-
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

3 Zum Seitenanfang

Dienstag, 18. Januar 2011, 17:48

was für IDE benuzt du ?
und an sonsten printf() :D
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

Bulbs

Eroberer

Dabei seit: 31.01.2010

Beiträge: 53

 

4 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 06:33

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 ;)
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

5 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 07:56

hm.. und log datein erstellen?
Mein kleines Projekt
-Cruel Online-
 

Bulbs

Eroberer

Dabei seit: 31.01.2010

Beiträge: 53

 

6 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 08:29

Was verstehst du unter log-Dateien erstellen? Ich kenne Log-Dateien jetzt nur von ausgeführten Aktionen, die dann aufgelistet werden mit Fehler und Co. Für meinen Fall hab ich von sowas noch nicht gehört, aber mal gucken, was Google dazu sagt.
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

7 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 08:34

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)
Mein kleines Projekt
-Cruel Online-
 

Bulbs

Eroberer

Dabei seit: 31.01.2010

Beiträge: 53

 

8 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 09:08

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 ;)
»Bulbs« hat folgendes Bild angehängt:
  • Variablenübersicht.jpg
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

9 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 09:46

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..
Mein kleines Projekt
-Cruel Online-
 

Bulbs

Eroberer

Dabei seit: 31.01.2010

Beiträge: 53

 

10 Zum Seitenanfang

Mittwoch, 19. Januar 2011, 10:09

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
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

11 Zum Seitenanfang

Montag, 7. Februar 2011, 08:22

Guck dir mal AspectC++ an.

Du krichst die verwendung auf die konsole mit folgendem Statement:

advice execution(" % ...=% ") :
before () {
*_out << "setting value " << JoinPoint :: signature () << endl;
}
 

ivanhoe

Eroberer

Dabei seit: 09.06.2009

Beiträge: 69

 

12 Zum Seitenanfang

Mittwoch, 9. Februar 2011, 00:46

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;
}
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

13 Zum Seitenanfang

Freitag, 11. Februar 2011, 07:44

Du kannst auch die Operatoren =+-*/^&|+%~ überladen.

Überladen
 

Spin.Doctor

Jungspund

Dabei seit: 04.10.2010

Beiträge: 12

 

14 Zum Seitenanfang

Freitag, 18. Februar 2011, 12:34

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]
 

Ähnliche Themen