1NAME=anal classes
2FILE=bins/pe/cpp_sample.exe
3CMDS=<<EOF
4aar
5avrr
6acll
7EOF
8EXPECT=<<EOF
9Album
10  (vtable at 0x140009d80)
11  virtual_0 @ 0x1400011f4 (vtable + 0x0)
12  virtual_8 @ 0x140001267 (vtable + 0x8)
13InAbsentia: Album
14  (vtable at 0x140009da0)
15  virtual_0 @ 0x1400010a5 (vtable + 0x0)
16  virtual_8 @ 0x14000102d (vtable + 0x8)
17type_info
18  (vtable at 0x140009dc0)
19  virtual_0 @ 0x1400011ea (vtable + 0x0)
20EOF
21RUN
22
23NAME=anal classes armv7
24FILE=bins/mach0/TestRTTI-armv7
25CMDS=<<EOF
26avrr
27acl
28acll~\@
29avra~0x0000c1c8:0
30avra~vmi:0
31?e `avraj~{[0]}`~{:
32EOF
33EXPECT=<<EOF
34A
35B: A
36C: A
37D: B, C
38  virtual_0 @ 0xa235 (vtable + 0x0)
39  virtual_4 @ 0xa24f (vtable + 0x4)
40  virtual_8 @ 0xa269 (vtable + 0x8)
41  virtual_0 @ 0xa29d (vtable + 0x0)
42  virtual_4 @ 0xa24f (vtable + 0x4)
43  virtual_8 @ 0xa2cb (vtable + 0x8)
44  virtual_0 @ 0xa235 (vtable + 0x0)
45  virtual_4 @ 0xa2f9 (vtable + 0x4)
46  virtual_8 @ 0xa327 (vtable + 0x8)
47  virtual_0 @ 0xa29d (vtable + 0x0)
48  virtual_4 @ 0xa2f9 (vtable + 0x4)
49  virtual_8 @ 0xa363 (vtable + 0x8)
50Type Info at 0x0000c1c8:
51  Type Info type: __vmi_class_type_info
52type: __class_type_info
53found_at: 49228
54class_vtable: 49216
55ref_to_type_class: 8
56ref_to_type_name: 49137
57name: A
58name_unique: true
59EOF
60RUN
61
62NAME=anal classes arm64
63FILE=bins/mach0/TestRTTI-arm64
64CMDS=<<EOF
65avrr
66acl
67acll~\@
68avra~0x100008378:0
69avra~vmi:0
70?e `avraj~{[0]}`~{:
71EOF
72EXPECT=<<EOF
73A
74B: A
75C: A
76D: B, C
77  virtual_0 @ 0x100005f1c (vtable + 0x0)
78  virtual_8 @ 0x100005f44 (vtable + 0x8)
79  virtual_16 @ 0x100005f6c (vtable + 0x10)
80  virtual_0 @ 0x100005fbc (vtable + 0x0)
81  virtual_8 @ 0x100005f44 (vtable + 0x8)
82  virtual_16 @ 0x100006008 (vtable + 0x10)
83  virtual_0 @ 0x100005f1c (vtable + 0x0)
84  virtual_8 @ 0x100006054 (vtable + 0x8)
85  virtual_16 @ 0x1000060a0 (vtable + 0x10)
86  virtual_0 @ 0x100005fbc (vtable + 0x0)
87  virtual_8 @ 0x100006054 (vtable + 0x8)
88  virtual_16 @ 0x100006108 (vtable + 0x10)
89Type Info at 0x100008378:
90  Type Info type: __vmi_class_type_info
91type: __class_type_info
92found_at: 4295000208
93class_vtable: 4295000184
94ref_to_type_class: 16
95ref_to_type_name: 4294999928
96name: A
97name_unique: true
98EOF
99RUN
100
101NAME=anal classes arm64e
102FILE=bins/mach0/TestRTTI-arm64e
103CMDS=<<EOF
104avrr
105acl
106acll~\@
107avra~0x100008370:0
108avra~vmi:0
109?e `avraj~{[0]}`~{:
110EOF
111EXPECT=<<EOF
112A
113B: A
114C: A
115D: B, C
116  virtual_0 @ 0x100005f50 (vtable + 0x0)
117  virtual_8 @ 0x100005f7c (vtable + 0x8)
118  virtual_16 @ 0x100005fa8 (vtable + 0x10)
119  virtual_0 @ 0x100006000 (vtable + 0x0)
120  virtual_8 @ 0x100005f7c (vtable + 0x8)
121  virtual_16 @ 0x100006050 (vtable + 0x10)
122  virtual_0 @ 0x100005f50 (vtable + 0x0)
123  virtual_8 @ 0x1000060a0 (vtable + 0x8)
124  virtual_16 @ 0x1000060f0 (vtable + 0x10)
125  virtual_0 @ 0x100006000 (vtable + 0x0)
126  virtual_8 @ 0x1000060a0 (vtable + 0x8)
127  virtual_16 @ 0x10000615c (vtable + 0x10)
128Type Info at 0x100008370:
129  Type Info type: __vmi_class_type_info
130type: __class_type_info
131found_at: 4295000200
132class_vtable: 4295000176
133ref_to_type_class: 13838435755002691596
134ref_to_type_name: 4294999928
135name: A
136name_unique: true
137EOF
138RUN
139