Re: Current gdb python errors on python-2.4

Phil Muldoon <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
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
[email protected].  [email protected] 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.