http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58962
Bug ID: 58962 Summary: Pretty printers use obsolete Python syntax Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: bmerry at gmail dot com Created attachment 31135 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31135&action=edit Patch to update raise statements to modern Python syntax The pretty printers shipped with GCC 4.8.1 use the obsolete raise ExceptionClass, argument format for raising exceptions. Modern Python (not sure when it was introduced, but the Python 2.6 docs seems to support it so it has been around for a while) instead uses raise ExceptionClass(arguments...) and the old form is not supported in Python 3. The result is that when I try to load the pretty printers via .gdbinit in Ubuntu 13.10, I get this message: Traceback (most recent call last): File "<string>", line 3, in <module> File "/usr/share/gcc-4.8/python/libstdcxx/v6/printers.py", line 54 raise ValueError, "Cannot find type %s::%s" % (str(orig), name) ^ SyntaxError: invalid syntax /home/bruce/.gdbinit:7: Error in sourced command file: Error while executing Python code. I've attached a patch which changes the raise statements to use the new syntax. It's against the version shipped with Ubuntu 13.10 in libstdc++6-4.8-dbg; I haven't checked whether Ubuntu have added their own patches.