This is the mail archive of the
mailing list for the GDB project.
Python: gdb.Type.template_argument method issue
- From: <Paul_Koning at Dell dot com>
- To: <gdb at sourceware dot org>
- Date: Wed, 14 Sep 2011 14:33:37 -0500
- Subject: Python: gdb.Type.template_argument method issue
The template_argument method assumes that all template arguments are types.? While that's the most common, other things are also found in the wild.? My C++ book says that the arguments can be integers, enums, pointers, references, or pointer-to-member constant values.? (GCC doesn't want to accept pointers and references, perhaps because it thinks they are relocatable.)
Looking at the code, it appears that the template_argument method will be looking at the demangled type string.? It seems that that's insufficient to sort out exactly what a given template argument is.? For example, if it's an enum, the method will simply see the enum value name, but I don't see how it would know which enum type that is so that doesn't allow it to nail down exactly what we have.
I figure that the thing to do would be to have the method return either a gdb.Type or a gdb.Value, depending on what the template argument is. ?But it looks like it needs more detailed knowledge about the template arguments than it has in the current logic, and I don't know enough GDB to know where to look for that.
Any hints on where to look?