Currently, if we do something like gdb.lookup_type(" unsigned long "), GDB errors out because of the leading and trailing spaces. The attached patch fixes this problem. A practical situation where this problem is hit is when invoking template methods. Its not uncommon to do things like this: (gdb) p foo.bar< unsigned long >() If "bar" happens to be an xmethod, then its implementation will typically need to parse the name of the method ("bar< unsigned long >" in the above example) to get the template argument and lookup the type. GDB currently fails for such cases. One could of course sanitize/fix such inputs in Python before calling lookup_type, but I think it is better done on the GDB side as having white spaces is valid syntax. For non-builtin types, lookup_type goes through the symbol lookup path. AFAIU, that path already ignores whitespaces. gdb/ChangeLog: * language.c (language_lookup_primitive_type_by_name): Remove unwanted space in the type name before looking it up. gdb/testsuite/ChangeLog: * gdb.python/py-type.exp: Add new tests.