Hello, As discussed with Daniel and Tom on IRC, I started looking at writing pretty printers for struct type and struct main_type. I have not fully tested it yet, just with various integer types (not even range types). It's just a prototype at this stage. But before finishing this up, I want to finish up the patch I have been working on on-and-off, that will provide a discriminant for the type-specific stuff, making it easier to print the right component for type_specific. Eventually, I think it'd be nice if we printed the data even more intelligently, omitting fields that are not relevant for the given type_code for instance. Or perhaps, we might want to leave the C-like representation, and show something more synthetic, tailored for each type kind. Here is a transcript with the current version: (top-gdb) p *type $2 = {pointer_type = 0x0, reference_type = 0x0, chain = 0x0, instance_flags = 0x443 [CONST|VOLATILE|UNSIGNED|STATIC], length = 4, main_type = 0xc8dcd0} Not much to show off, in this case, except that the pretty-printer prints a decoded version of the instance_flags. Always nice when one looks at them. And then, trying to print *type.main_type: $4 = {name = 0xc8dd20 "int", tag_name = 0x0, code = TYPE_CODE_INT, flags = [unsigned|static|objfile_owned], owner = 0xcfd450 (objfile), target_type = 0x0, vptr_basetype = 0x0} I've only tested with TYPE_CODE_INT, right now, so it's probably still buggy as is with other types, in particular when fields or bounds are involved. I will look at that if no one else beats me to it, but after I have introduced the type_specific discriminant. Enjoy! Suggestions and comments welcome. -- Joel