This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Current gdb python errors on python-2.4


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]