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.
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)
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
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
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) Namespace Info symref 5 2. ( 2)( 0) usv1 Member Info [3] int 3. ( 2)( 0) usv2 Member Info [3] int 4. ( 1)( 0) End Info symref 1 5. ( 1)( 0) Using Info [4] symref(file 0, index 1) 6. ( 1)(0x50) __unnamed::usv1 Static SBss [3] int 7. ( 1)(0x54) __unnamed::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