124 def inspect(self, klassName):
125 self.report = []
126 print ("")
127 print ("#"*80)
128 print ("## loading all relevant dictionaries...")
129 try:
130 klassNames = self.loadDicts(klassName)
131 print ("#"*80)
132 except Exception as err:
133 print ("")
134 print ("#"*80)
135 print ("## ERROR while trying to load dict for [%s]" % klassName)
136 print ("## -Most probably you DIDN'T give a fully qualified name !")
137 print ("## Ex: try 'Analysis::Muon' instead of 'Muon'")
138 print ("##")
139 print ("## -Could also mean that you are missing a dictionary ")
140 print ("## of one of the base classes...")
141 print ("#"*80)
142 print (err)
143 raise
144 return
145
146 print ("")
147 print ("#"*80)
148 print ("## infos for class [%s]:" % klassName)
149 print ("## sizeof(%s) = %i" % \
150 (klassName,
151 self.Type.SizeOf(self.Type.ByName(klassName))))
152 print ("##")
153 print ("## (offset, data member name, data member type)")
154 print ("")
155
156 klassNames.reverse()
157 for klass in klassNames:
158 line = "%s %s %s" % (
159 "-" * (40-len(klass)//2-1),
160 "[%s]" % klass,
161 "-" * (40-len(klass)//2-1) )
162
163 print (line)
164 self.report.append(line)
165 dataMembers = self.dumpDataMembers( self.Type.ByName(klass) )
166 for i in dataMembers:
167 line = "%3s %s %-50s %s %s" % ( str(i.offset),
168 " "*5,
169 i.name,
170 " "*5, i.type )
171 print (line)
172 self.report.append(line)
173 print ("#"*80)
174 return
175