(self, arg, from_tty)
| 200 | super().__init__("mge-info", gdb.COMMAND_USER) |
| 201 | |
| 202 | def invoke(self, arg, from_tty): |
| 203 | if arg == "opr": |
| 204 | registered_oprs = gdb.lookup_global_symbol( |
| 205 | "mgb::imperative::Operator::registered_types()" |
| 206 | ).value()() |
| 207 | size = vector_size(registered_oprs) |
| 208 | for i in range(size): |
| 209 | registered_opr = vector_item(registered_oprs, i) |
| 210 | # name = eval_on_val(registered_opr, ".name()").string() |
| 211 | name = get_type_name(registered_opr) |
| 212 | print("{}: {}".format(i, demangle(name))) |
| 213 | elif arg == "trf": |
| 214 | dispatch_context = gdb.lookup_global_symbol( |
| 215 | "mgb::imperative::Transform::get_context()" |
| 216 | ).value()() |
| 217 | transformations = dispatch_context["transformations"] |
| 218 | size = vector_size(transformations) |
| 219 | for i in range(size): |
| 220 | transformation = vector_item(transformations, i) |
| 221 | # name = eval_on_val(transformation, ".get()->name().c_str()").string() |
| 222 | name = shared_ptr_deref(transformation).dynamic_type.name |
| 223 | # name = get_type_name(transformation) |
| 224 | print("{}: {}".format(i, demangle(name))) |
| 225 | else: |
| 226 | print("Unsupported argument {}".format(arg)) |
| 227 | |
| 228 | def complete(self, text, word): |
| 229 | return ["opr", "trf"] |
nothing calls this directly
no test coverage detected