For this code: class A { int f(void); }; int (A::*ptr) (void); GCC will output debug information claiming that the type of PTR is:
struct { void (*__pfn) (args, ...); ptrdiff_t __delta; }; At least for dwarf2, GCC should output DW_TAG_ptr_to_member, just like it does for data members. The definition in the spec of DW_AT_use_location is pretty meaningless for function members (that's come up on the dwarf list before, but was never resolved, as far as I know), so it should probably be omitted. This does not affect GDB much. Versions up to 6.5 have poor pointer to member support. The next release will be better, but will also recognize GCC's current broken debug information. -- Summary: GCC should output DW_TAG_ptr_to_member for member functions Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: drow at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28767