Next: Using gnatxref with vi, Up: Examples of gnatxref Usage [Contents][Index]
For the following examples, we will consider the following units:
main.ads: 1: with Bar; 2: package Main is 3: procedure Foo (B : in Integer); 4: C : Integer; 5: private 6: D : Integer; 7: end Main; main.adb: 1: package body Main is 2: procedure Foo (B : in Integer) is 3: begin 4: C := B; 5: D := B; 6: Bar.Print (B); 7: Bar.Print (C); 8: end Foo; 9: end Main; bar.ads: 1: package Bar is 2: procedure Print (B : Integer); 3: end bar;
The first thing to do is to recompile your application (for instance, in
that case just by doing a gnatmake main
, so that GNAT generates
the cross-referencing information.
You can then issue any of the following commands:
- *
gnatxref main.adb
gnatxref
generates cross-reference information for main.adb and every unit ’with’ed by main.adb.The output would be:
B Type: Integer Decl: bar.ads 2:22 B Type: Integer Decl: main.ads 3:20 Body: main.adb 2:20 Ref: main.adb 4:13 5:13 6:19 Bar Type: Unit Decl: bar.ads 1:9 Ref: main.adb 6:8 7:8 main.ads 1:6 C Type: Integer Decl: main.ads 4:5 Modi: main.adb 4:8 Ref: main.adb 7:19 D Type: Integer Decl: main.ads 6:5 Modi: main.adb 5:8 Foo Type: Unit Decl: main.ads 3:15 Body: main.adb 2:15 Main Type: Unit Decl: main.ads 2:9 Body: main.adb 1:14 Print Type: Unit Decl: bar.ads 2:15 Ref: main.adb 6:12 7:12This shows that the entity
Main
is declared in main.ads, line 2, column 9, its body is in main.adb, line 1, column 14 and is not referenced any where.The entity
bar.ads
, line 2, column 15 and it is referenced inmain.adb
, line 6 column 12 and line 7 column 12.- *
gnatxref package1.adb package2.ads
gnatxref
will generates cross-reference information forpackage1.adb
,package2.ads
and any other packagewith
ed by any of these.
Next: Using gnatxref with vi, Up: Examples of gnatxref Usage [Contents][Index]