diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index ea2b2381c49d6896f3e1eca0ef35e09f251d9f9f..7e8febf779c3586e8f1fb24e4d5c05ddd024c223 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4836,8 +4836,15 @@ void GdbEngine::startGdb(const QStringList &args) // template <class T> T foo() { return T(0); } // int main() { return foo<int>(); } // (gdb) call 'int foo<int>'() - // /build/buildd/gdb-6.8/gdb/valops.c:2069: internal-error: - postCommand("set overload-resolution off"); + // /build/buildd/gdb-6.8/gdb/valops.c:2069: internal-error + // This seems to be fixed, however, with 'on' it seems to _require_ + // explicit casting of function pointers: + // GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu + // (gdb) p &Myns::QMetaType::typeName -> $1 = (const char *(*)(int)) 0xb7cf73b0 <Myns::QMetaType::typeName(int)> + // (gdb) p Myns::QMetaType::typeName(1024) -> 31^error,msg="Couldn't find method Myns::QMetaType::typeName" + // But we can work around on the dumper side. So let's use the default (i.e. 'on') + //postCommand("set overload-resolution off"); + //postCommand(_("set demangle-style none")); // From the docs: // Stop means reenter debugger if this signal happens (implies print).