This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Remove unwanted spaces when looking up builtin types


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.

Attachment: unwanted_space_v1.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]