(self)
| 148 | return self.val.dynamic_type.name |
| 149 | |
| 150 | def children(self): |
| 151 | concrete_val = self.val.address.cast( |
| 152 | self.val.dynamic_type.pointer() |
| 153 | ).dereference() |
| 154 | for field in concrete_val.type.fields(): |
| 155 | if field.is_base_class or field.artificial: |
| 156 | continue |
| 157 | if field.name == "sm_typeinfo": |
| 158 | continue |
| 159 | yield field.name, concrete_val[field.name] |
| 160 | |
| 161 | |
| 162 | class SpanPrinter: |