Wie kann ich die Zeilennummer der Variablendeklaration einer bestimmten Variablen für die aktuelle Funktion in gdb identifizieren?GDB: Wie identifiziert man die Zeilennummer der Variablendeklaration einer bestimmten Variablen für die aktuelle Funktion in gdb
Hier ist ein Beispielcode:
1 #include<stdio.h>
2
3 void func(int*);
4
5 void main()
6 {
7 int x;
8 char c[5];
9 int* p;
10 char *g;
11 char *ptr;
12
13 p = &x;
14 g = &c[3];
15 func(&x);
16 ptr = &c[1];
17 c[1]='f';
18 x=12;
19
20 }
21
22 void func(int *l){
23 int x;
24 unsigned int ggg;
25 ggg =100;
26
27 x = 3;
28 *l = x;
29 }
30
Wanted output:
for main()
variable x, line 7
variable c, line 8
variable p, line 9
variable g, line 10
variable ptr, line 11
for func()
variable x, line 23
variable ggg, line 24
Ich bin zur Zeit in der Funktion main() Unter der Annahme. Ich kann die lokalen Variablen mit "info locals
" dann geparst seine Variablennamen.
Und mithilfe der Liste Befehl konnte ich den aktuellen Bereich der Variablen, aber nicht ganze Funktion Körper bekommen. Unten ist das Ergebnis des Befehls list und die Deklarationsvariable 'x
' scheint zu fehlen. Ich habe auch versucht, die Listengröße auf 20 zu setzen, und bekam die Zeilen von 8 bis 27, aber immer noch nicht hilfreich.
(gdb) l
8 char c[5];
9 int* p;
10 char *g;
11 char *ptr;
12
13 p = &x;
14 g = &c[3];
15 func(&x);
16 ptr = &c[1];
17 c[1]='f';
Wenn ich alle Zeilen Code in den Quellcode zu überprüfen, könnte ich gleiche Variablendeklarationen aus verschiedenen Funktionen begegnen ... helfen
Yey! klappt wunderbar! Danke: 3 – Chinwei