This chapter contains
sample programs that illustrate the symbol table representations of various
language constructs.
The examples are organized
by source language and each consists of a program
listing and the partial symbol table contents for that program.
The system
symbol table dumpers
stdump
(1)
and
odump
(1)
were used to produce
the output.
9.1 C
9.1.1 Unnamed Structure
See
Section 5.3.8.3
for related information.
Source Listing
Struct S1 { int abc; struct {int x; signed int y; unsigned int z;}; int rst; } s1;
Symbol Table Contents
File 0 Local Symbols:
0. (0)( 0) unname.c File Text symref 12
1. (1)( 0xc) Block Info symref 6
2. (2)( 0) x Member Info [ 3] int
3. (2)(0x20) y Member Info [ 3] int
4. (2)(0x40) z Member Info [ 4] unsigned int
5. (1)( 0) End Info symref 1
6. (1)(0x14) S1 Block Info symref 11
7. (2)( 0) abc Member Info [ 3] int
8. (2)(0x20) Member Info [ 5] struct(file 0,
index 2)
9. (2)(0x80) rst Member Info [ 3] int
10. (1)( 0) S1 End Info symref 6
11. (0)( 0) unname.c End Text symref 0
Externals Table:
0. (file 0)(0x14) s1 Global Common [7] struct(file 0,
index 6)
9.2 C++
9.2.1 Base and Derived Classes
See
Section 5.3.8.6
for related information.
Source Listing
#include <iostream.h> class employee { char *name; short age; short deparment; int salary; public: static int stest; employee *next; void print() const; }; class manager : public employee { employee emp; employee *group; short level; public: void print() const; }; void employee::print() const { cout << "name is " << name << '\n'; } void manager::print() const { employee::print(); } void f() { manager m1,m2; employee e1, e2; employee *elist; elist=&m1; m1.next=&e1; e1.next=&m2; m2.next=&e2; e2.next=0; }
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) bs6.cxx File Text symref 51
1. ( 1)( 0) employee Tag Info [25] Class(extended file 0,
index 2)
2. ( 1)(0x18) employee Block Info symref 17
3. ( 2)( 0) name Member Info [28] Pointer to char
4. ( 2)(0x40) age Member Info [29] short
5. ( 2)(0x50) deparment Member Info [29] short
6. ( 2)(0x60) salary Member Info [30] int
7. ( 2)(0x80) next Member Info [31] Pointer to
Class(extended file 0,
index 2)
8. ( 2)( 0) employee::stest
Static Info [30] int
9. ( 2)( 0) employee::print(void) const
Proc Info [43] endref 12, void
10. ( 3)( 0) this Param Info [40] Const Pointer to Const
Class(extended file 0,
index 2)
11. ( 2)( 0) employee::print(void) const
End Info symref 9
12. ( 2)( 0) employee::operator =(const employee&)
Proc Info [57] endref 16, Reference
Class(extended file 0,
index 2)
13. ( 3)( 0) this Param Info [48] Const Pointer to
Class(extended file 0,
index 2)
14. ( 3)( 0) Param Info [54] Reference Const
Class(extended file 0,
index 2)
15. ( 2)( 0) employee::operator =(const employee&)
End Info symref 12
16. ( 1)( 0) employee End Info symref 2
17. ( 1)( 0) manager Tag Info [61] Class(extended file 0,
index 18)
18. ( 1)(0x40) manager Block Info symref 31
19. ( 2)( 0) employee Base Class Info [25] Class(extended file 0,
index 2)
20. ( 2)(0xc0) emp Member Info [25] Class(extended file 0,
index 2)
21. ( 2)(0x180) group Member Info [31] Pointer to Class(extended
file 0, index 2)
22. ( 2)(0x1c0) level Member Info [29] short
23. ( 2)( 0) manager::print(void) const
Proc Info [73] endref 26, void
24. ( 3)( 0) this Param Info [70] Const Pointer to Const
Class(extended file 0,
index 18)
25. ( 2)( 0) manager::print(void) const
End Info symref 23
26. ( 2)( 0) manager::operator =(const manager&)
Proc Info [90] endref 30, Reference
Class(extended file 0,
index 18)
27. ( 3)( 0) this Param Info [81] Const Pointer to
Class(extended file 0,
index 18)
28. ( 3)( 0) Param Info [87] Reference Const
Class(extended file 0,
index 18)
29. ( 2)( 0) manager::operator =(const manager&)
End Info symref 26
30. ( 1)( 0) manager End Info symref 18
31. ( 1)( 0) employee::print(void) const
Proc Text [414] endref 36, void
32. ( 2)( 0x9) this Param Register [416] Const Pointer to Const
Class(extended file 0,
index 2)
33. ( 2)(0x18) Block Text symref 35
34. ( 2)(0x60) End Text symref 33
35. ( 1)(0x70) employee::print(void) const
End Text symref 31
36. ( 1)(0x70) manager::print(void) const
Proc Text [419] endref 41, void
37. ( 2)( 0x9) this Param Register [421] Const Pointer to Const
Class(extended file 0,
index 18)
38. ( 2)(0x18) Block Text symref 40
39. ( 2)(0x2c) End Text symref 38
40. ( 1)(0x3c) manager::print(void) const
End Text symref 36
41. ( 1)(0xac) f(void) Proc Text [424] endref 50, void
42. ( 2)( 0x8) Block Text symref 49
43. ( 3)(-64) m1 Local Abs [61] Class(extended file 0,
index 18)
44. ( 3)(-128) m2 Local Abs [61] Class(extended file 0,
index 18)
45. ( 3)(-152) e1 Local Abs [25] Class(extended file 0,
index 2)
46. ( 3)(-176) e2 Local Abs [25] Class(extended file 0,
index 2)
47. ( 3)( 0) elist Local Register [31] Pointer to Class(extended
file 0, index 2)
48. ( 2)(0x28) End Text symref 42
49. ( 1)(0x30) f(void) End Text symref 41
50. ( 0)( 0) bs6.cxx End Text symref 0
9.2.2 Virtual Function Tables and Interludes
Source Listing
class Base1 { public: virtual int virtual_mem_func() { return 1; } }; class Base2 : virtual public Base1 { public: virtual int virtual_mem_func() { return 2; } }; class Base3 : public Base2 { public: virtual int virtual_mem_func() { return 3; } }; int foo(Base1 *b1) { return b1->virtual_mem_func(); } int main() { Base1 *b1; Base2 *b2; Base3 *b3; int i,j,k; i = foo(b1); j = foo(b2); k = foo(b3); return 0; }
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) interlude.cxx
File Text symref 113
1. ( 1)( 0) Base1 Tag Info [17] Class(extended file 0,
index 2)
2. ( 1)( 0x8) Base1 Block Info symref 19
3. ( 2)( 0) __vptr Member Info [20] Pointer to Array
[(extended file 0, aux
3)0-1:64] of Virtual func
table
4. ( 2)( 0) Base1::Base1(void)
Proc Info [35] endref 7, Reference
Class(extended file 0,
index 2)
5. ( 3)( 0) this Param Info [32] Const Pointer to
Class(extended file 0,
index 2)
6. ( 2)( 0) Base1::Base1(void)
End Info symref 4
7. ( 2)( 0) Base1::Base1(const Base1&)
Proc Info [45] endref 11, Reference
Class(extended file 0,
index 2)
8. ( 3)( 0) this Param Info [32] Const Pointer to
Class(extended file 0,
index 2)
9. ( 3)( 0) Param Info [42] Reference Const
Class(extended file 0,
index 2)
10. ( 2)( 0) Base1::Base1(const Base1&)
End Info symref 7
11. ( 2)( 0) Base1::operator =(const Base1&)
Proc Info [49] endref 15, Reference
Class(extended file 0,
index 2)
12. ( 3)( 0) this Param Info [32] Const Pointer to
Class(extended file 0,
index 2)
13. ( 3)( 0) Param Info [42] Reference Const
Class(extended file 0,
index 2)
14. ( 2)( 0) Base1::operator =(const Base1&)
End Info symref 11
15. ( 2)( 0x1) Base1::virtual_mem_func(void)
Proc Info [53] endref 18, int
16. ( 3)( 0) this Param Info [32] Const Pointer to
Class(extended file 0,
index 2)
17. ( 2)( 0) Base1::virtual_mem_func(void)
End Info symref 15
18. ( 1)( 0) Base1 End Info symref 2
19. ( 1)( 0) Base2 Tag Info [55] Class(extended file 0,
index 20)
20. ( 1)(0x18) Base2 Block Info symref 42
21. ( 2)( 0) __vptr Member Info [20] Pointer to Array
[(extended file 0, aux
3)0-1:64] of Virtual func
table
22. ( 2)(0x40) __bptr Member Info [20] Pointer to Array
[(extended file 0, aux
3)0-1:64] of Virtual func
table
23. ( 2)( 0) Base1 Virtual Base Class
Info [17] Class(extended file 0,
index 2)
24. ( 2)( 0) Base2::Base2(void)
Proc Info [67] endref 28, Reference
Class(extended file 0,
index 20)
25. ( 3)( 0) this Param Info [64] Const Pointer to
Class(extended file 0,
index 20)
26. ( 3)( 0) <control> Param Info [ 3] int
27. ( 2)( 0) Base2::Base2(void)
End Info symref 24
28. ( 2)( 0) Base2::Base2(const Base2&)
Proc Info [77] endref 33, Reference
Class(extended file 0,
index 20)
29. ( 3)( 0) this Param Info [64] Const Pointer to
Class(extended file 0,
index 20)
30. ( 3)( 0) <control> Param Info [ 3] int
31. ( 3)( 0) Param Info [74] Reference Const
Class(extended file 0,
index 20)
32. ( 2)( 0) Base2::Base2(const Base2&)
End Info symref 28
33. ( 2)( 0) Base2::operator =(const Base2&)
Proc Info [81] endref 38, Reference
Class(extended file 0,
index 20)
34. ( 3)( 0) this Param Info [64] Const Pointer to
Class(extended file 0,
index 20)
35. ( 3)( 0) <control> Param Info [ 3] int
36. ( 3)( 0) Param Info [74] Reference Const
Class(extended file 0,
index 20)
37. ( 2)( 0) Base2::operator =(const Base2&)
End Info symref 33
38. ( 2)( 0x1) Base2::virtual_mem_func(void)
Proc Info [85] endref 41, int
39. ( 3)( 0) this Param Info [64] Const Pointer to
Class(extended file 0,
index 20)
40. ( 2)( 0) Base2::virtual_mem_func(void)
End Info symref 38
41. ( 1)( 0) Base2 End Info symref 20
42. ( 1)( 0) Base3 Tag Info [87] Class(extended file 0,
index 43)
43. ( 1)(0x18) Base3 Block Info symref 65
44. ( 2)( 0) __vptr Member Info [20] Pointer to Array
[(extended file 0, aux
3)0-1:64] of Virtual func
table
45. ( 2)(0x40) __bptr Member Info [20] Pointer to Array
[(extended file 0, aux
3)0-1:64] of Virtual func
table
46. ( 2)( 0) Base2 Base Class Info [55] Class(extended file 0,
index 20)
47. ( 2)( 0) Base3::Base3(void)
Proc Info [99] endref 51, Reference
Class(extended file 0,
index 43)
48. ( 3)( 0) this Param Info [96] Const Pointer to
Class(extended file 0,
index 43)
49. ( 3)( 0) <control> Param Info [ 3] int
50. ( 2)( 0) Base3::Base3(void)
End Info symref 47
51. ( 2)( 0) Base3::Base3(const Base3&)
Proc Info [109] endref 56, Reference
Class(extended file 0,
index 43)
52. ( 3)( 0) this Param Info [96] Const Pointer to
Class(extended file 0,
index 43)
53. ( 3)( 0) <control> Param Info [ 3] int
54. ( 3)( 0) Param Info [106] Reference Const
Class(extended file 0,
index 43)
55. ( 2)( 0) Base3::Base3(const Base3&)
End Info symref 51
56. ( 2)( 0) Base3::operator =(const Base3&)
Proc Info [113] endref 61, Reference
Class(extended file 0,
index 43)
57. ( 3)( 0) this Param Info [96] Const Pointer to
Class(extended file 0,
index 43)
58. ( 3)( 0) <control> Param Info [ 3] int
59. ( 3)( 0) Param Info [106] Reference Const
Class(extended file 0,
index 43)
60. ( 2)( 0) Base3::operator =(const Base3&)
End Info symref 56
61. ( 2)( 0x1) Base3::virtual_mem_func(void)
Proc Info [117] endref 64, int
62. ( 3)( 0) this Param Info [96] Const Pointer to
Class(extended file 0,
index 43)
63. ( 2)( 0) Base3::virtual_mem_func(void)
End Info symref 61
64. ( 1)( 0) Base3 End Info symref 43
65. ( 1)( 0) __INTER__Base3_virtual_mem_func_Base1_Base2_Xv
Interlude Info thunk(extended file 0, index
61), proc(extended file
0, index 104)
66. ( 1)( 0) __INTER__Base2_virtual_mem_func_Base1_Xv
Interlude Info thunk(extended file 0, index
38), proc(extended file
0, index 108)
67. ( 1)(0x160) __vtbl_5Base1
Static SData [126] Const Array [(extended
file 0, aux 3)0-0:64] of
Pointer to void
68. ( 1)(0x168) __vtbl_5Base2
Static SData [126] Const Array [(extended
file 0, aux 3)0-0:64] of
Pointer to void
69. ( 1)(0x170) __btbl_5Base2
Static SData [138] Const Array [(extended
file 0, aux 3)0-0:64] of
long
70. ( 1)(0x178) __vtbl_5Base15Base2
Static SData [126] Const Array [(extended
file 0, aux 3)0-0:64] of
Pointer to void
71. ( 1)(0x180) __vtbl_5Base3
Static SData [126] Const Array [(extended
file 0, aux 3)0-0:64] of
Pointer to void
72. ( 1)(0x188) __btbl_5Base3
Static SData [138] Const Array [(extended
file 0, aux 3)0-0:64] of long
73. ( 1)(0x190) __vtbl_5Base15Base25Base3
Static SData [126] Const Array [(extended
file 0, aux 3)0-0:64] of
Pointer to void
74. ( 1)( 0) Base1::virtual_mem_func(void)
StaticProc Text [152] endref 79, int
75. ( 2)( 0x1) this Param Register [32] Const Pointer to
Class(extended file 0,
index 2)
76. ( 2)( 0x4) Block Text symref 78
77. ( 2)( 0x8) End Text symref 76
78. ( 1)( 0xc) Base1::virtual_mem_func(void)
End Text symref 74
79. ( 1)(0x14) Base2::virtual_mem_func(void)
StaticProc Text [154] endref 84, int
80. ( 2)( 0x1) this Param Register [64] Const Pointer to
Class(extended file 0,
index 20)
81. ( 2)( 0x4) Block Text symref 83
82. ( 2)( 0x8) End Text symref 81
83. ( 1)( 0xc) Base2::virtual_mem_func(void)
End Text symref 79
84. ( 1)(0x28) Base3::virtual_mem_func(void)
StaticProc Text [156] endref 89, int
85. ( 2)( 0x1) this Param Register [96] Const Pointer to
Class(extended file 0,
index 43)
86. ( 2)( 0x4) Block Text symref 88
87. ( 2)( 0x8) End Text symref 86
88. ( 1)( 0xc) Base3::virtual_mem_func(void)
End Text symref 84
89. ( 1)(0x34) foo(Base1*) Proc Text [158] endref 94, int
90. ( 2)( 0x9) b1 Param Register [29] Pointer to Class(extended
file 0, index 2)
91. ( 2)(0x10) Block Text symref 93
92. ( 2)(0x28) End Text symref 91
93. ( 1)(0x38) foo(Base1*) End Text symref 89
94. ( 1)(0x6c) main Proc Text [160] endref 104, int
95. ( 2)( 0xc) Block Text symref 103
96. ( 3)(-8) b1 Local Abs [29] Pointer to Class(extended
file 0, index 2)
97. ( 3)(-16) b2 Local Abs [61] Pointer to Class(extended
file 0, index 20)
98. ( 3)( 0x9) b3 Local Register [93] Pointer to Class(extended
file 0, index 43)
99. ( 3)(-24) i Local Abs [ 3] int
100. ( 3)(-28) j Local Abs [ 3] int
101. ( 3)(-32) k Local Abs [ 3] int
102. ( 2)(0x70) End Text symref 95
103. ( 1)(0x80) main End Text symref 94
104. ( 1)(0x20) __INTER__Base3_virtual_mem_func_Base1_Base2_Xv
StaticProc Text [162] endref 108, btNil
105. ( 2)( 0) Block Text symref 107
106. ( 2)(0x28) End Text symref 105
107. ( 1)( 0x8) __INTER__Base3_virtual_mem_func_Base1_Base2_Xv
End Text symref 104
108. ( 1)( 0xc) __INTER__Base2_virtual_mem_func_Base1_Xv
StaticProc Text [164] endref 112, btNil
109. ( 2)( 0) Block Text symref 111
110. ( 2)(0x14) End Text symref 109
111. ( 1)( 0x8) __INTER__Base2_virtual_mem_func_Base1_Xv
End Text symref 108
112. ( 0)( 0) interlude.cxx
End Text symref 0
9.2.3 Namespace Definitions and Uses
See
Section 5.3.6.4
for related information.
Source Listing
ns1.h: namespace ns1 { class Cobj {}; extern int i1; } ns2.h: namespace ns1 { int x1(void); } ns.C: #include "ns1.h" #include "ns2.h" namespace ns1 { extern int part3; } int ns1::i1 = 1000; int ns1::part3 = 3; int ns1::x1(void) { using namespace ns1; return i1*10; }
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) ns.C File Text symref 7
1. ( 1)( 0) ns1::x1(void) Proc Text [4] endref 6, int
2. ( 2)( 0) Using Info [6] symref(file 1, index 1)
3. ( 2)( 0x8) Block Text symref 5
4. ( 2)(0x14) End Text symref 3
5. ( 1)(0x18) ns1::x1(void) End Text symref 1
6. ( 0)( 0) ns.C End Text symref 0
File 1 Local Symbols:
0. ( 0)( 0) ns1.h File Text symref 8
1. ( 1)( 0) ns1 Namespace Info symref 7
2. ( 2)( 0) ns1::x1(void) Proc Info [2] endref 4, int
3. ( 2)( 0) ns1::x1(void) End Info symref 2
4. ( 2)( 0) i1 Member Info [4] int
5. ( 2)( 0) part3 Member Info [4] int
6. ( 1)( 0) ns1 End Info symref 1
7. ( 0)( 0) ns1.h End Text symref 0
Externals Table:
0. (file 0)(0x50) ns1::i1 Global SData [3] int
1. (file 0)(0x58) ns1::part3 Global Sdata [3] int
2. (file 0)( 0) ns1::x1(void) Proc Text symref 1
See
Section 5.3.6.4.3
for related information.
Source Listing
uns.C: namespace { int usv1; int usv2; } int privat(void) { return usv1 + usv2; }
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) uns.C File Info symref 13
1. ( 1)( 0) __N1AqSbNU3PTf Namespace Info symref 5
2. ( 2)( 0) <unnamed namespace>::usv1 Member Info [3] int
3. ( 2)( 0) <unnamed namespace>::usv2 Member Info [3] int
4. ( 1)( 0) __N1AqSbNU3PTf End Info symref 1
5. ( 1)( 0) Using Info [4] symref(file 0, index 1)
6. ( 1)(0x50) <unnamed namespace>::usv1 Static SBss [3] int
7. ( 1)(0x54) <unnamed namespace>::usv2 Static SBss [3] int
8. ( 1)( 0) privat(void) Proc Text [5] endref 12, int
9. ( 2)( 0x8) Block Text symref 11
10. ( 2)(0x1c) End Text symref 9
11. ( 1)(0x20) End Text symref 8
12. ( 0)( 0) End Text symref 0
See
Section 5.3.6.4.2
for related information.
Source Listing
alias.C: namespace long_namespace_name { extern int nmem; } int get_nmem(void) { namespace nknm = long_namespace_name; namespace nknm2 = nknm; return nknm::nmem; }
Symbol Table Contents
File 0 Local Symbols
0. ( 0)( 0) alias.C File Text symref 11
1. ( 1)( 0) long_namespace_name Namespace Info symref 4
2. ( 2)( 0) nmem Member Info [3] int
3. ( 1)( 0) long_namespace_name End Info symref 1
4. ( 1)( 0) get_nmem(void) Proc Text [4] endref 10, int
5. ( 2)( 0x8) Block Text symref 9
6 ( 2)( 0) nknm Alias Info [5] symref(file 0,index 1)
7 ( 2)( 0) nknm2 Alias Info [6] symref(file 0,index 6)
8. ( 2)(0x10) End Text symref 5
9. ( 1)(0x14) get_nmem(void) End Text symref 4
10. ( 0)( 0) alias.C End Text symref 0
Externals Table
0. (file 0)(0x4) long_namespace_name::nmem Global Undefined [3]int
1. (file 0)( 0) get_nmem(void) Proc Text symref 4
See
Section 3.3.8
for related information.
Source Listing
#include <iostream.h> class Vector { int *p; int sz; public: enum { max=1000 }; Vector(int); class Range { }; class Size { }; int operator[](int i); }; // Vector Vector::Vector(int i) { if (i>max) throw Size(); p=new int[i]; if (p) sz=i; else sz=0; } int Vector::operator[](int i) { if (0<=i && i<sz) return p[i]; throw Range(); } void f() { int i; try { cout<<"size?"; cin>>i; Vector v(i); cout<<v[i]<<"\n"; } catch (Vector::Range) { cout<< "bad news; outta here...\n"; } catch (Vector::Size) { cout<< "can't initialize to that size...\n"; } } // f main() { f(); }
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) multiexc.cxx File Text symref 83
1. ( 1)( 0) Vector Tag Info [16] Class(extended file 0,
index 2)
2. ( 1)(0x10) Vector Block Info symref 40
3. ( 2)( 0) <generated_name_0005>
Tag Info [19] enum(extended file 0,
index 4)
4. ( 2)( 0) <generated_name_0005>
Block Info symref 7
5. ( 3)(0x3e8) max Member Info [ 2] btNil
6. ( 2)( 0) <generated_name_0005> End Info symref 4
7. ( 2)( 0) Range Tag Info [22] Class(extended file 0,
index 8)
8. ( 2)( 0x1) Range Block Info symref 14
9. ( 3)( 0) Vector::Range::operator =(const Vector::Range&)
Proc Info [40] endref 13, Reference
Class(extended file 0,
index 8)
10. ( 4)( 0) this Param Info [31] Const Pointer to
Class(extended file 0,
index 8)
11. ( 4)( 0) Param Info [37] Reference Const
Class(extended file 0,
index 8)
12. ( 3)( 0) Vector::Range::operator =(const Vector::Range&)
End Info symref 9
13. ( 2)( 0) Range End Info symref 8
14. ( 2)( 0) Size Tag Info [44] Class(extended file 0,
index 15)
15. ( 2)( 0x1) Size Block Info symref 21
16. ( 3)( 0) Vector::Size::operator =(const Vector::Size&)
Proc Info [62] endref 20, Reference
Class(extended file 0,
index 15)
17. ( 4)( 0) this Param Info [53] Const Pointer to
Class(extended file 0,
index 15)
18. ( 4)( 0) Param Info [59] Reference Const
Class(extended file 0,
index 15)
19. ( 3)( 0) Vector::Size::operator =(const Vector::Size&)
End Info symref 16
20. ( 2)( 0) Size End Info symref 15
21. ( 2)( 0) p Member Info [66] Pointer to int
22. ( 2)(0x40) sz Member Info [ 3] int
23. ( 2)( 0) Vector::Vector(int)
Proc Info [76] endref 27, Reference
Class(extended file 0,
index 2)
24. ( 3)( 0) this Param Info [73] Const Pointer to
Class(extended file 0,
index 2)
25. ( 3)( 0) i Param Info [ 3] int
26. ( 2)( 0) Vector::Vector(int)
End Info symref 23
27. ( 2)( 0) Vector::Vector(const Vector&)
Proc Info [86] endref 31, Reference Class(extended
file 0, index 2)
28. ( 3)( 0) this Param Info [73] Const Pointer to
Class(extended file 0,
index 2)
29. ( 3)( 0) Param Info [83] Reference Const
Class(extended file 0,
index 2)
30. ( 2)( 0) Vector::Vector(const Vector&)
End Info symref 27
31. ( 2)( 0) Vector::operator [](int)
Proc Info [90] endref 35, int
32. ( 3)( 0) this Param Info [73] Const Pointer to
Class(extended file 0,
index 2)
33. ( 3)( 0) i Param Info [ 3] int
34. ( 2)( 0) Vector::operator [](int)
End Info symref 31
35. ( 2)( 0) Vector::operator =(const Vector&)
Proc Info [92] endref 39, Reference
Class(extended file 0,
index 2)
36. ( 3)( 0) this Param Info [73] Const Pointer to
Class(extended file 0,
index 2)
37. ( 3)( 0) Param Info [83] Reference Const
Class(extended file 0,
index 2)
38. ( 2)( 0) Vector::operator =(const Vector&)
End Info symref 35
39. ( 1)( 0) Vector End Info symref 2
40. ( 1)( 0) __throw_Q16Vector4Size
Tag Info [96] struct(extended file 0,
index 41)
41. ( 1)(0x10) __throw_Q16Vector4Size
Block Info symref 45
42. ( 2)( 0) type_signature
Member Info [99] Pointer to char
43. ( 2)(0x40) thunk Member Info [99] Pointer to char
44. ( 1)( 0) __throw_Q16Vector4Size
End Info symref 41
45. ( 1)(0x3c0) __throw_Q16Vector4Size
Static Data [176] Array [(extended file 7,
aux 9)0-1:128] of
struct(extended file 0,
index 41)
46. ( 1)(0x3a0) __throw_Q16Vector5Range
Static Data [176] Array [(extended file 7,
aux 9)0-1:128] of
struct(extended file 0,
index 41)
47. ( 1)( 0) Vector::Vector(int)
Proc Text [184] endref 57, Reference
Class(extended file 0,
index 2)
48. ( 2)( 0xa) this Param Register [73] Const Pointer to
Class(extended file 0,
index 2)
49. ( 2)( 0x9) i Param Register [ 3] int
50. ( 2)(0x20) Block Text symref 56
51. ( 3)(-8) __t8 Local Abs [44] Class(extended file 0,
index 15)
52. ( 3)(0x3c0) __throw_Q16Vector4Size
Static Data indexNil
53. ( 3)(-16) __t9 Local Abs [10] unsigned long
54. ( 3)(-24) __t10 Local Abs [194] Pointer to Array
[(extended file 7, aux
9)0-0:32] of int
55. ( 2)(0x74) End Text symref 50
56. ( 1)(0xb4) Vector::Vector(int)
End Text symref 47
57. ( 1)(0xb4) Vector::operator [](int)
Proc Text [200] endref 65, int
58. ( 2)(0x28) this Param Abs [73] Const Pointer to
Class(extended file 0,
index 2)
59. ( 2)( 0x9) i Param Register [ 3] int
60. ( 2)(0x1c) Block Text symref 64
61. ( 3)(-16) __t11 Local Abs [22] Class(extended file 0,
index 8)
62. ( 3)(0x3a0) __throw_Q16Vector5Range
Static Data indexNil
63. ( 2)(0x44) End Text symref 60
64. ( 1)(0x7c) Vector::operator [](int)
End Text symref 57
65. ( 1)(0x130) f(void) Proc Text [202] endref 78, void
66. ( 2)(0x1c) Block Text symref 77
67. ( 3)(-32) i Local Abs [ 3] int
68. ( 3)(-48) __current_try_block_decl
Local Abs indexNil
69. ( 3)(0x28) Block Text symref 72
70. ( 4)(-24) v Local Abs [16] Class(extended file 0,
index 2)
71. ( 3)(0xab) End Text symref 69
72. ( 3)(0xac) Block Text symref 74
73. ( 3)(0xe3) End Text symref 72
74. ( 3)(0xe4) Block Text symref 76
75. ( 3)(0x113) End Text symref 74
76. ( 2)(0x11c) End Text symref 66
77. ( 1)(0x130) f(void) End Text symref 65
78. ( 1)(0x260) main Proc Text [204] endref 82, int
79. ( 2)(0x10) Block Text symref 81
80. ( 2)(0x18) End Text symref 79
81. ( 1)(0x24) main End Text symref 78
82. ( 0)( 0) multiexc.cxx End Text symref 0
See
Section 5.3.6.6
for related information.
Source Listing
comm.f: C main program INTEGER IND, CLASS(10) REAL MARKS(50) COMMON CLASS,MARKS,IND CALL EVAL(5) STOP END C SUBROUTINE EVAL(PERF) INTEGER PERF,JOB(10),PAR REAL GRADES(50) COMMON JOB,GRADES,PAR RETURN END
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) comm.f File Text symref 13
1. ( 1)( 0) comm$main_ Proc Text [25] endref 6, btNil
2. ( 2)(0x10) Block Text symref 5
3. ( 3)( 0) _BLNK__ Static Common [39] struct(extended file 1,
index 1)
4. ( 2)(0x44) End Text symref 2
5. ( 1)(0x44) comm$main_ End Text symref 1
6. ( 1)(0x44) eval_ Proc Text [42] endref 12, btNil
7. ( 2)( 0) PERF Param VarRegister [11] 32-bit long
8. ( 2)( 0x4) Block Text symref 11
9. ( 3)( 0) _BLNK__ Static Common [56] struct(extended file 2,
index 1)
10. ( 2)( 0x4) End Text symref 8
11. ( 1)( 0x8) eval_ End Text symref 6
12. ( 0)( 0) comm.f End Text symref 0
File 1 Local Symbols:
0. ( 0)( 0) _BLNK__ File Text symref 7
1. ( 1)(0xf4) _BLNK__ Block Common symref 6
2. ( 2)(0x780) IND Member Info [ 5] 32-bit long
3. ( 2)( 0) CLASS Member Info [ 6] Array [(extended file 0,
aux 11)1-10:4] of 32-bit
long
4. ( 2)(0x140) MARKS Member Info [12] Array [(extended file 0,
aux 11)1-50:4] of float
5. ( 1)( 0) End Common symref 1
6. ( 0)( 0) _BLNK__ End Text symref 0
File 2 Local Symbols:
0. ( 0)( 0) _BLNK__ File Text symref 7
1. ( 1)(0xf4) _BLNK__ Block Common symref 6
2. ( 2)( 0) JOB Member Info [ 5] Array [(extended file 0,
aux 11)1-10:4] of 32-bit
long
3. ( 2)(0x780) PAR Member Info [11] 32-bit long
4. ( 2)(0x140) GRADES Member Info [12] Array [(extended file 0,
aux 11)1-50:4] of float
5. ( 1)( 0) End Common symref 1
6. ( 0)( 0) _BLNK__ End Text symref 0
Externals table:
0. (file 0) ( 0) MAIN__ Proc Text symref 1
1. (file 0) (0xf4) _BLNK__ Global Common indexNil
2. (file 0) ( 0) comm$main_ Proc Text symref 1
3. (file 0) (0x44) eval_ Proc Text symref 6
4. (file 0) ( 0) for_stop Proc Undefined indexNil
5. (file 0) ( 0) for_set_reentrancy
Proc Undefined indexNil
6. (file 0) ( 0) _fpdata Global Undefined indexNil
***FILE DESCRIPTOR TABLE***
filename address vstamp -g sex lang flags
cbLine ---------------iBase/count----------------------------------
lnOffset sym line pd string opt aux rfd
comm.o:
comm.f 0x0000000000000000 0x0000 0 el Fortran readin
0 0 0 0 0 0 0 0
5 13 20 2 44 0 59 0
_BLNK__ 0x0000000000000000 0x0000 0 el Fortran merge
0 13 0 2 44 0 59 0
0 7 0 0 33 0 18 0
_BLNK__ 0x0000000000000000 0x0000 0 el Fortran merge
0 20 0 2 77 0 77 0
0 7 0 0 32 0 18 0
See
Section 5.3.6.7
for related information.
Source Listing
aent.f: program entryp print *, "In entryp, the main routine" call anentry() call anentry1(2,3) call anentry1a(2,3,4,5,6,7) call asubr() print *, "exiting..." end subroutine asubr real*4 areal /1.2345E-6/ print *, "In asubr" return entry anentry print *, "In anentry" return entry anentry1(a,b,c,d,e,f) a = 1 b = 2 print *, "In anentry1" return include 'entrya.h' entry anentry2(b,a) print *, "In anentry2" return entry anentry3 include 'entryb.h' return end
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) aent.f File Text symref 30
1. ( 1)( 0) entryp_ Proc Text [ 4] endref 5, btNil
2. ( 2)(0x14) Block Text symref 4
3. ( 2)(0xf8) End Text symref 2
4. ( 1)(0x108) entryp_ End Text symref 1
5. ( 1)(0x108) asubr_ Proc Text [ 6] endref 29, btNil
6. ( 2)(0x20) Block Text symref 28
7. ( 3)(0x610) AREAL Static Data [ 8] float
8. ( 3)(0x17c) anentry_ Proc Text [ 9] endref -1, btNil
9. ( 4)(0x1f0) anentry1_ Proc Text [11] endref -1, btNil
10. ( 5)( 0xa) A Param VarRegister [ 8] float
11. ( 5)( 0x9) B Param VarRegister [ 8] float
12. ( 5)(-144) C Param Var [ 8] float
13. ( 5)(-152) D Param Var [ 8] float
14. ( 5)(-160) E Param Var [ 8] float
15. ( 5)(-168) F Param Var [ 8] float
16. ( 5)(0x290) anentry1a_ Proc Text [13] endref -1, btNil
17. ( 6)( 0xa) A Param VarRegister [ 8] float
18. ( 6)( 0x9) B Param VarRegister [ 8] float
19. ( 6)(-144) C Param Var [ 8] float
20. ( 6)(-152) D Param Var [ 8] float
21. ( 6)(-160) E Param Var [ 8] float
22. ( 6)(-168) F Param Var [ 8] float
23. ( 6)(0x330) anentry2_ Proc Text [15] endref -1, btNil
24. ( 7)( 0x9) B Param VarRegister [ 8] float
25. ( 7)( 0xa) A Param VarRegister [ 8] float
26. ( 7)(0x3ac) anentry3_ Proc Text [17] endref -1, btNil
27. ( 7)(0x384) End Text symref 6
28. ( 6)(0x3a0) asubr_ End Text symref 5
29. ( 5)( 0) aent.f End Text symref 0
Externals table:
0. (file 0) ( 0) MAIN__ Proc Text symref 1
1. (file 0) ( 0) entryp_ Proc Text symref 1
2. (file 0) (0x108) asubr_ Proc Text symref 5
3. (file 0) (0x290) anentry1a_ Proc Text symref 16
4. (file 0) (0x1f0) anentry1_ Proc Text symref 9
5. (file 0) (0x17c) anentry_ Proc Text symref 8
6. (file 0) ( 0) for_set_reentrancy
Proc Undefined indexNil
7. (file 0) ( 0) for_write_seq_lis
Proc Undefined indexNil
8. (file 0) (0x330) anentry2_ Proc Text symref 23
9. (file 0) (0x3ac) anentry3_ Proc Text symref 26
10.(file 0) ( 0) _fpdata Global Undefined indexNil
***PROCEDURE DESCRIPTOR TABLE***
name prof rfrm isym iline iopt regmask regoff fpoff fp
address guse gpro lnOff lnLow lnHigh fregmask frgoff lcloff pc
aent.o:
aent.f [0 for 7]
entryp_ 0 0 1 0 -1 0x04000200 -112 112 30
0x000 1 8 0 1 10 0x00000000 0 0 26
asubr_ 0 0 5 66 -1 0x04001e00 -256 256 30
0x108 1 8 8 12 37 0x00000000 0 0 26
anentry_ 0 0 8 95 -1 0x04001e00 -256 256 30
0x17c 1 8 11 17 -1 0x00000000 0 0 26
anentry1_ 0 0 9 124 -1 0x04001e00 -256 256 30
0x1f0 1 8 14 21 -1 0x00000000 0 0 26
anentry1a_ 0 0 16 164 -1 0x04001e00 -256 256 30
0x290 1 8 20 1 -1 0x00000000 0 0 26
anentry2_ 0 0 23 204 -1 0x04001e00 -256 256 30
0x330 1 8 25 29 -1 0x00000000 0 0 26
anentry3_ 0 0 26 235 -1 0x04001e00 -256 256 30
0x3ac 1 8 28 33 -1 0x00000000 0 0 26
See
Section 5.3.8.9
for related information.
Source Listing
arraydescs.f: ! -*- Fortran -*- integer, allocatable, dimension(:,:) :: alloc_int_2d real, pointer, dimension(:) :: pointer_real_1d allocate(alloc_int_2d(10,20)) call zowie(alloc_int_2d) end contains subroutine zowie(assumed_int_2d) integer, dimension(:,:) :: assumed_int_2d print *, assumed_int_2d return end subroutine
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) arraydescs.f File Text symref 43
1. ( 1)( 0) main$arraydescs_
Proc Text [ 4] endref 26, btNil
2. ( 2)(0x40) $f90$f90_array_desc
Block Info symref 10
3. ( 3)( 0) dim Member Info [ 6] 8-bit int
4. ( 3)(0x40) element_length Member Info [ 7] 32-bit long
5. ( 3)(0x80) ptr Member Info [ 9] Pointer to float
6. ( 3)(0x140) ies1 Member Info [10] 32-bit long
7. ( 3)(0x180) ub1 Member Info [11] 32-bit long
8. ( 3)(0x1c0) lb1 Member Info [12] 32-bit long
9. ( 2)( 0) $f90$f90_array_desc
End Info symref 2
10. ( 2)(0x58) $f90$f90_array_desc
Block Info symref 21
11. ( 3)( 0) dim Member Info [16] 8-bit int
12. ( 3)(0x40) element_length
Member Info [17] 32-bit long
13. ( 3)(0x80) ptr Member Info [19] Pointer to 32-bit long
14. ( 3)(0x140) ies1 Member Info [20] 32-bit long
15. ( 3)(0x180) ub1 Member Info [21] 32-bit long
16. ( 3)(0x1c0) lb1 Member Info [22] 32-bit long
17. ( 3)(0x200) ies2 Member Info [23] 32-bit long
18. ( 3)(0x240) ub2 Member Info [24] 32-bit long
19. ( 3)(0x280) lb2 Member Info [25] 32-bit long
20. ( 2)( 0) $f90$f90_array_desc
End Info symref 10
21. ( 2)(0x14) Block Text symref 25
22. ( 3)(0x450) POINTER_REAL_1D
Static Bss [13] struct(extended file 0,
index 2)
23. ( 3)(0x3c0) ALLOC_INT_2D
Static Data [26] struct(extended file 0,
index 10)
24. ( 2)(0x160) End Text symref 21
25. ( 1)(0x170) main$arraydescs_
End Text symref 1
26. ( 1)(0x170) zowie_ Proc Text [29] endref 42, btNil
27. ( 2)(0x58) $f90$f90_array_desc
Block Info symref 38
28. ( 3)( 0) dim Member Info [31] 8-bit int
29. ( 3)(0x40) element_length
Member Info [32] 32-bit long
30. ( 3)(0x80) ptr Member Info [34] Pointer to 32-bit long
31. ( 3)(0x140) ies1 Member Info [35] 32-bit long
32. ( 3)(0x180) ub1 Member Info [36] 32-bit long
33. ( 3)(0x1c0) lb1 Member Info [37] 32-bit long
34. ( 3)(0x200) ies2 Member Info [38] 32-bit long
35. ( 3)(0x240) ub2 Member Info [39] 32-bit long
36. ( 3)(0x280) lb2 Member Info [40] 32-bit long
37. ( 2)( 0) $f90$f90_array_desc
End Info symref 27
38. ( 2)( 0x9) ASSUMED_INT_2D
Param VarRegister [41] struct(extended file 0,
index 27)
39. ( 2)(0x34) Block Text symref 41
40. ( 2)(0x1f4) End Text symref 39
41. ( 1)(0x220) zowie_ End Text symref 26
42. ( 0)( 0) arraydescs.f End Text symref 0
See
Section 5.3.8.13
for related information.
Source Listing
program sets(input,output); type digitset=set of 0..9; var odds,evens:digitset; begin odds:=[1,3,5,7,9]; evens:=[0,2,4,6,8]; end.
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) set.p File Text symref 10
1. ( 1)(0x50) $dat Static SBss indexNil
2. ( 1)( 0) main Proc Text [ 8] endref 9, btNil
3. ( 2)( 0x4) Block Text symref 8
4. ( 3)( 0) digitset Typdef Info [16] set of(extended file 0,
index 10)
5. ( 3)(-8) odds Local Abs [16] set of(extended file 0,
index 10)
6. ( 3)(-16) evens Local Abs [16] set of(extended file 0,
index 10)
7. ( 2)(0x1c) End Text symref 3
8. ( 1)(0x24) main End Text symref 2
9. ( 0)( 0) set.p End Text symref 0
See
Section 5.3.8.12
for related information.
Source Listing
subrange.p: program years(input,output); type century=0..99; var year:century; begin readln(year); end.
Symbol Table Contents
File 0 Local Symbols:
0. ( 0)( 0) subrange.p File Text symref 9
1. ( 1)(0xc0) $dat Static SBss indexNil
2. ( 1)( 0) main Proc Text [ 8] endref 8, btNil
3. ( 2)(0x10) Block Text symref 7
4. ( 3)( 0) century Typdef Info [10] range0..99 of(extended
file 0, index 2): 8
5. ( 3)(-8) year Local Abs [10] range0..99 of(extended
file 0, index 2): 8
6. ( 2)(0x68) End Text symref 3
7. ( 1)(0x74) main End Text symref 2
8. ( 0)( 0) subrange.p End Text symref 0
See
Section 5.3.8.11
for related information.
Source Listing
variant.p: program variant(input,output); type employeetype=(h,s,m); employeerecord=record id:integer; case status: employeetype of h: (rate:real; hours:integer;); s: (salary:real); m: (profit:real); end; { record } var employees:array[1..100] of employeerecord; begin employees[1].id:=1; employees[1].profit:=0.06; end.
Symbol Table Contents
File 0 Local Symbols
0. (0)( 0) variant.p File Text symref 28
1. (1)( 0) VARIANT StaticProc Text [2] endref 27, btNil
2. (2)( 0) EMPLOYEETYPE
Block Info symref 7
3. (3)( 0) H Member Info [0] btNil
4. (3)( 0x1) S Member Info [0] btNil
5. (3)( 0x2) M Member Info [0] btNil
6. (2)( 0) EMPLOYEETYPE
End Info symref 2
7 (2)(0x10) EMPLOYEERECORD
Block Info symref 23
8 (3)( 0) ID Member Info [1] int
9 (3)(0x20) STATUS Member Info [5] enum(extended file 1, index
2)
10. (3)( 0x9) Block Variant symref 22
11. (4)( 0xc) Block Info symref 15
12. (5)(0x40) RATE Member Info [11] float
13. (5)(0x60) HOURS Member Info [1] int
14 (4)( 0) End Info symref 11
15. (4)(0x11) Block Info symref 18
16. (5)(0x40) SALARY Member Info [11] float
17. (4)( 0) End Info symref 15
18. (4)(0x16) Block Info symref 21
19. (5)(0x40) PROFIT Member Info [11] float
20. (4)( 0) End Info symref 18
21. (3)( 0x9) End Variant symref 10
22. (2)( 0) EMPLOYEERECORD
End Info symref 7
23. (2)(0x18) Block Text symref 26
24. (3)(-1600) EMPLOYEES Local Abs [32] Array [(extended file 1,
aux 27)1-100:128] of struct
(extended file 1, index 7)
25. (2)(0x30) End Text symref 23
26. (1)(0x40) VARIANT End Text symref 1
27. (0)( 0) variant.p End Text symref 0