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