This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Current gdb python errors on python-2.4
- From: Phil Muldoon <pmuldoon at redhat dot com>
- To: Julian Smith <jules at op59 dot net>
- Cc: gdb at sourceware dot org
- Date: Tue, 11 Jun 2013 14:34:15 +0100
- Subject: Re: Current gdb python errors on python-2.4
- References: <20130609035926 dot 40bad3bb dot jules at op59 dot net>
On 09/06/13 03:59, Julian Smith wrote:
> I think gdb in cvs has some python that is not supported by python-2.4
> (e.g. on centos5) - code like 'except Exception as e:'.
>
> This leads to startup warnings like:
>
> [jules@vm-centos5 ~]$ ./gdb_cvs_dir/src/gdb/gdb -data-directory gdb_cvs_dir/src/gdb/data-directory
> Traceback (most recent call last):
> File "/home/jules/gdb_cvs_dir/src/gdb/data-directory/python/gdb/__init__.py", line 105, in auto_load_packages
> __import__(modname)
> File "gdb_cvs_dir/src/gdb/data-directory/python/gdb/command/frame_filters.py", line 82
> except Exception as e:
> ^
> SyntaxError: invalid syntax
> - and subsequent use of python from within gdb fails.
>
> I think simply replacing the 'as' with a comma will allow the code to
> work with all python versions ?
Unfortunately not, this is one messy area of Python. Python 2.0 - 2.5
supports only:
except Exception, e:
Python 2.6 and 2.7 support both:
except Exception, e:
and
exception Exception as e:
But Python 3 only supports:
exception Exception as e:
The only way (I know) to get exceptions to work for all versions of
Python is to do something like:
except Exception:
e = sys.exc_info[1]
> Here's a patch that works for me:
So you will have to re-factor your patch. Also, patches are sent to
gdb-patches@sourceware.org. gdb@sourceware.org is more for questions
about GDB.
Also your patch needs a ChangeLog entry, and possibly you may need
paperwork on file with the FSF (the maintainers can help you with that
if it is deemed needed).
Cheers,
Phil